Texte in eine andere Datei schreiben

  • Excel

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Agent.

    Texte in eine andere Datei schreiben

    Hallo,

    ich bin noch ein Anfänger und bräuchte zu zwei Punkten etwas Hilfe:

    1. ich würde gerne meine Makros im Hintergrund laufen lassen, man soll nicht sehen, wenn zwischen den Sheets wechselt

    2. ich lese mehrere Sheet in eine Sammeldatei und möchte pro Sheet die gewünschten Info in eine Reihe schreibe und die nächsten Sheetinfo in die nächste Reihe usw. usf.

    dazu bräuchte ich einen Befehl, der immer das die nächste freie Zeile zum pasten automatisch berechnet/zählt

    hier meine bisherige Formel:

    Visual Basic-Quellcode

    1. Sub Ruecklauf()
    2. Dim mappe As String
    3. Dim i As Integer
    4. mappe = ""
    5. i = 1
    6. Do
    7. If ActiveWorkbook.Sheets(i).Name = "Übersicht" Then
    8. mappe = ActiveWorkbook.Name
    9. End If
    10. i = i + 1
    11. Loop Until i > ActiveWorkbook.Sheets.Count Or mappe <> ""
    12. If mappe = "" Then
    13. MsgBox "Sheet 'Übersicht' not found!"
    14. End
    15. End If
    16. With Application.FileDialog(msoFileDialogOpen)
    17. .AllowMultiSelect = True
    18. .Title = "Please select file(s) to load!"
    19. .Filters.Add "xls-Files", "*.xls", 1
    20. .FilterIndex = 1
    21. .Show
    22. 'Dateien laden
    23. For i = 1 To .SelectedItems.Count
    24. Workbooks.Open .SelectedItems.Item(i)
    25. With ActiveWorkbook
    26. Sheets("TimeReport").Select
    27. Range("a3").Select
    28. Selection.Copy
    29. Windows("2007-02-06_AnalysisTimeReport_1.0.xls").Activate
    30. Range("as6").Select
    31. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    32. :=False, Transpose:=False
    33. Windows("TimeReport.xls").Activate
    34. Range("b5").Select
    35. Selection.Copy
    36. Windows("2007-02-06_AnalysisTimeReport_1.0.xls").Activate
    37. Range("at6").Select
    38. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    39. :=False, Transpose:=False
    40. Windows("TimeReport.xls").Activate
    41. Range("s5").Select
    42. Selection.Copy
    43. Windows("2007-02-06_AnalysisTimeReport_1.0.xls").Activate
    44. Range("au6").Select
    45. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    46. :=False, Transpose:=False
    47. Range("A1").Select
    48. Windows("TimeReport.xls").Activate
    49. End With
    50. Workbooks(ActiveWorkbook.Name).Close
    51. Next
    52. End With
    53. End Sub



    EDIT by Mad Andy:
    Verschoben nach VBA

    Edit by Agent: VB-Tag eingefügt

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Agent“ ()

    1) dann darfst du die Sheets auch nicht mit der Select-Methode markieren, nehm die Select-Aufrufe raus und greif direkt auf die Zellen zu: Sheets(i).Range("a1")... , das gleiche müsste auch mit den Workbooks funktionieren: Arbeitsmappe1.Sheets(i)..., da darfst du kein "Windows.Activate" ausführen

    2) du kann doch mit For-Schleifen die Zellen durchlaufen: if Sheet(i).Cells(x,y)<>"" then ...
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau