Anzeige
Archiv - Navigation
1792to1796
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellen aus Bereich in erste leere Zelle

Zellen aus Bereich in erste leere Zelle
25.11.2020 15:52:44
Marco
Hallo,
sont bin ich immer nur als Mitleser im Forum.
Nun benötige ich aktib eure Hilfe.
In Tabelle1 suche ich nach "F". In Zelle F soll er auf die erste leere Zelle springen und dort den Text aus Tabelle2 "A2" einfügen. In die nächste leere Zelle dann Tabelle2 "A3" usw.
Bis jetzt habe ich folgendes VBA Makro geschrieben. Nur leider funktioniert es noch nicht.
  • 
    Sub In_erster_leerer_Zelle_einfügen()
    Dim Text1 As String
    Dim Text2 As String
    Dim Text3 As String
    Dim Text4 As String
    Dim Text5 As String
    Dim Text6 As String
    Dim Text7 As String
    Dim Text8 As String
    Dim Text9 As String
    Dim Text10 As String
    Text1 = Worksheets(2).Range("A2").Value
    Text2 = Worksheets(2).Range("A3").Value
    Text3 = Worksheets(2).Range("A4").Value
    Text4 = Worksheets(2).Range("A5").Value
    Text5 = Worksheets(2).Range("A6").Value
    Text6 = Worksheets(2).Range("A7").Value
    Text7 = Worksheets(2).Range("A8").Value
    Text8 = Worksheets(2).Range("A9").Value
    Text9 = Worksheets(2).Range("A10").Value
    Sheets(1).Select
    Cells.Find(What:="F", After:=ActiveCell).Activate
    LastR = ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row
    Worksheets(1).Cells(1, LastR) = Text1
    End Sub
    

  • Kann mir hier jemand weiterhelfen.
    Die Testdatei habe ich hochgeladen.
    MfG
    Marco
    https://www.herber.de/bbs/user/141840.xlsm

    6
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Zellen aus Bereich in erste leere Zelle
    25.11.2020 16:54:15
    Marco
    Jetzt funktioniert das Makro schon mal.
    Ist bestimmt sehr komplizert aber programmiert, aber viele Wege führen nach Rom.
    Sub In_erster_leerer_Zelle_einfügen()
    Dim Text1 As String
    Dim Text2 As String
    Dim Text3 As String
    Dim Text4 As String
    Dim Text5 As String
    Dim Text6 As String
    Dim Text7 As String
    Dim Text8 As String
    Dim Text9 As String
    Dim Text10 As String
    Dim LastR As Long
    Text1 = Worksheets(2).Range("A2").Value
    Text2 = Worksheets(2).Range("A3").Value
    Text3 = Worksheets(2).Range("A4").Value
    Text4 = Worksheets(2).Range("A5").Value
    Text5 = Worksheets(2).Range("A6").Value
    Text6 = Worksheets(2).Range("A7").Value
    Text7 = Worksheets(2).Range("A8").Value
    Text8 = Worksheets(2).Range("A9").Value
    Text9 = Worksheets(2).Range("A10").Value
    Sheets(1).Select
    Cells.Find(What:="F", After:=ActiveCell).Activate
    LastR = ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row + 1
    Worksheets(1).Cells(LastR, ActiveCell.Column) = Text1
    LastR = ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row + 1
    Worksheets(1).Cells(LastR, ActiveCell.Column) = Text2
    LastR = ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row + 1
    Worksheets(1).Cells(LastR, ActiveCell.Column) = Text3
    LastR = ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row + 1
    Worksheets(1).Cells(LastR, ActiveCell.Column) = Text4
    LastR = ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row + 1
    Worksheets(1).Cells(LastR, ActiveCell.Column) = Text5
    LastR = ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row + 1
    Worksheets(1).Cells(LastR, ActiveCell.Column) = Text6
    LastR = ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row + 1
    Worksheets(1).Cells(LastR, ActiveCell.Column) = Text7
    LastR = ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row + 1
    Worksheets(1).Cells(LastR, ActiveCell.Column) = Text8
    LastR = ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row + 1
    Worksheets(1).Cells(LastR, ActiveCell.Column) = Text9
    LastR = ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row + 1
    Worksheets(1).Cells(LastR, ActiveCell.Column) = Text10
    End Sub
    
    Habt ihr Verbesserungsvorschläge?
    Anzeige
    AW: Zellen aus Bereich in erste leere Zelle
    25.11.2020 19:51:22
    Edmund
    Hallo Marco
    Wenn Dein Makro soweit funktioniert ist ja schon mal gut.
    Mit dem bist du allerdings recht eingeschränkt.
    z.B. legst Du dich in Tabelle 2 auf maximal 9 Werte fest.
    Versuche mal folgendes Script.
    Mit dem bist Du deutlich flexibler.
    Sub Makro()
    Dim s As Integer
    Dim z As Integer
    s = 1
    'ermittelt, in welcher Spalte "F" steht
    Do
    If Worksheets(1).Cells(1, s).Value = "F" Then
    Exit Do
    Else
    s = s + 1
    End If
    Loop Until Worksheets(1).Cells(1, s).Value = ""
    'bricht die Routine ab, wenn kein F gefunden wurde
    If Worksheets(1).Cells(1, s) = "" Then
    MsgBox "Kein F gefunden"
    Exit Sub
    Else
    End If
    'ermittelt erste leere Zelle in der F-Spalte
    If Worksheets(1).Cells(2, s) = "" Then
    z = 2
    Else
    z = Worksheets(1).Cells(1, s).End(xlDown).Row + 1
    End If
    'trägt die Werte ein, wenn vorhanden
    If Worksheets(2).Cells(2, 1) = "" Then
    MsgBox "In Tabelle2 Spalte A sind keine Daten vorhanden"
    Exit Sub
    Else
    For i = 2 To Worksheets(2).Cells(1.1).End(xlDown).Row
    Worksheets(1).Cells(z, s).Value = Worksheets(2).Cells(i, 1).Value
    z = z + 1
    Next i
    End If
    End Sub
    
    Viele Grüße
    Edmund
    Anzeige
    AW: Zellen aus Bereich in erste leere Zelle
    25.11.2020 20:23:45
    Edmund
    Nachschlag:
    Der Code sollte zwar funktionieren, aber trage doch bitte trotzdem noch der vollständigkeit halber als erste Zeile ein "Dim i As Integer" ein, sonst kann ich heute Nacht schlecht schlafen.
    Gruß
    Edmund
    AW: Zellen aus Bereich in erste leere Zelle
    01.12.2020 08:44:41
    Marco
    Hallo Edmund,
    sorry für das späte Feedback. Ich bin heute erst wieder im Büro.
    Das ist ja genial, funktioniert perfekt!
    Gibt es noch eine Möglichkeit, in Tabelle2 B1 eine Zahl einzufügen um diese Scheife bspw. 10x durchzuführen?
    Viele Grüße
    Marco
    AW: Zellen aus Bereich in erste leere Zelle
    01.12.2020 09:28:30
    Marco
    Hallo Edmund,
    sorry für das späte Feedback. Ich bin heute erst wieder im Büro.
    Das ist ja genial, funktioniert perfekt!
    Gibt es noch eine Möglichkeit, in Tabelle2 B1 eine Zahl einzufügen um diese Scheife bspw. 10x durchzuführen?
    Viele Grüße
    Marco
    Anzeige
    AW: Zellen aus Bereich in erste leere Zelle
    01.12.2020 11:23:59
    Marco
    Hallo Edmund,
    ich habe meine Eingabemaske in Tabelle2 nun etwas geändert.
    Nun fangen die Werte, die ich in die erste leere Zelle kopieren möchte, erst in Tabelle2 "U19" an.
    Ich habe den Code versucht, wie folgt anzupassen:
    Sub Makro2()
    Dim s As Integer
    Dim z As Integer
    Dim i As Integer
    s = 1
    'ermittelt, in welcher Spalte "F" steht
    Do
    If Worksheets(1).Cells(1, s).Value = "F" Then
    Exit Do
    Else
    s = s + 1
    End If
    Loop Until Worksheets(1).Cells(1, s).Value = ""
    'bricht die Routine ab, wenn kein F gefunden wurde
    If Worksheets(1).Cells(1, s) = "" Then
    MsgBox "Kein F gefunden"
    Exit Sub
    Else
    End If
    'ermittelt erste leere Zelle in der F-Spalte
    If Worksheets(1).Cells(2, s) = "" Then
    z = 2
    Else
    z = Worksheets(1).Cells(1, s).End(xlDown).Row + 1
    End If
    'trägt die Werte ein, wenn vorhanden
    If Worksheets(2).Cells(19, 21) = "" Then
    MsgBox "In Tabelle2 Spalte U19 sind keine Daten vorhanden"
    Exit Sub
    Else
    For i = 2 To Worksheets(2).Cells(1.1).End(xlDown).Row
    Worksheets(1).Cells(z, s).Value = Worksheets(2).Cells(i, 21).Value
    z = z + 1
    Next i
    End If
    End Sub
    
    In Zelle Z18 würde ich dann die Anzahl der Wiederholungen eintragen.
    Außerdem füge ich hinter die letzte ausgefüllte Spalte noch mehrere weitere Spalten ein.
    Dies habe ich wie folgt gelöst, vielleicht gibt es hier auch noch eine flexiblere Lösung?
        Dim Column1 As String
    Dim Column2 As String
    Dim Column3 As String
    Dim Column4 As String
    Dim Column5 As String
    Column1 = Worksheets("Senden").Range("T6").Value
    Column2 = Worksheets("Senden").Range("T7").Value
    Column3 = Worksheets("Senden").Range("T8").Value
    Column4 = Worksheets("Senden").Range("T9").Value
    Column5 = Worksheets("Senden").Range("T9").Value
    LastS = Worksheets("Import").Cells(1, 256).End(xlToLeft).Column + 1
    Worksheets("Import").Cells(1, LastS) = Column1
    LastS = Worksheets("Import").Cells(1, 256).End(xlToLeft).Column + 1
    Worksheets("Import").Cells(1, LastS) = Column2
    LastS = Worksheets("Import").Cells(1, 256).End(xlToLeft).Column + 1
    Worksheets("Import").Cells(1, LastS) = Column3
    LastS = Worksheets("Import").Cells(1, 256).End(xlToLeft).Column + 1
    Worksheets("Import").Cells(1, LastS) = Column4
    LastS = Worksheets("Import").Cells(1, 256).End(xlToLeft).Column + 1
    Worksheets("Import").Cells(1, LastS) = Column5
    

    Anzeige

    302 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige