Microsoft Excel

Herbers Excel/VBA-Archiv

Range auswählen??

    Betrifft: Range auswählen?? von: Erich M.
    Geschrieben am: 04.10.2003 08:36:05

    Hallo zusammen,

    ich habe mit dem Makrorecorder einen Code erstellt,
    der auch funktioniert:

    Sub Makro2()
    '
    ' Makro2 Makro
    ' Makro am 04.10.2003 von Me aufgezeichnet
    '
    
    '
        Workbooks.Open Filename:="D:\EXCEL-Makros\test.xls"
        Sheets("Filialen").Select
        Range("A1:G18").Select
        Selection.Copy
        Windows("Datenimport.xls").Activate
        Range("A1").Select
        ActiveSheet.Paste
        Range("B1").Select
        Windows("test.xls").Activate
        Range("A1").Select
        Application.CutCopyMode = False
        ActiveWorkbook.Close
        ActiveWorkbook.Save
    End Sub
    


    Nun müsste ich folgendes erreichen:
    1. Die Range "A1:G18" soll variabel sein
    2. Beginn der Kopie in der Zelle der Spalte A, in der "Test" steht
    (das ist entweder A1, A2 oder A3)
    3. In der Spalte G soll die letzte belegte Zelle gesucht werden.

    Beispiel: Test in A2, letzte Zelle g = G225
    dann Range: A2:G225

    Besten Dank für eine Hilfe!

    mfg
    Erich
      


    Betrifft: AW: Range auswählen?? von: Christoph
    Geschrieben am: 04.10.2003 09:08:54

    Hi Erich,
    so etwa?

    Sub Test()
    
    LRowA = Cells(Rows.Count, 1).End(xlUp).Row
    LRowG = Cells(Rows.Count, 7).End(xlUp).Row
    
    For i = 1 To LRowA
       If Cells(i, 1).Value = "Test" Then
          rgAnf = Cells(i, 1)
          Exit For
       End If
    Next i
    
    Range(Cells(i, 1), Cells(LRowG, 7)).Copy
    '....wohin auch immer
    
    
    End Sub
    


    Gruß
    Christoph


      


    Betrifft: DANKE - Christoph: funktioniert perfekt!! o.T. von: Erich M.
    Geschrieben am: 04.10.2003 10:20:22

    .


      


    Betrifft: Danke für die Rückmeldung von: Christoph
    Geschrieben am: 04.10.2003 10:45:33

    Hi Erich,
    die Zeile: rgAnf = Cells(i,1) kannst du löschen...da hatte ich zunächst eine andere Idee, und nachher nicht bereinigt.
    Ebenso kannst du auf 95% deiner Select-Anweisungen verzichten. Das macht nur alles langsamer. Bsp: statt
    Range(...).Select
    Selection.Copy
    gleich:
    Range(...).Copy
    Der Makrorecorder nimmt eben jedes Select auf, was soll er auch sonst machen.

    Gruß
    Christoph