Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1796to1800
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

VBA Bestimmte Zellen untereinander

VBA Bestimmte Zellen untereinander
14.12.2020 09:22:10
Hai
Guten Tag zusammen,
ich würde gerne per VBA aus einer Spalte bestimmte Zellen in ein anderes Tabellenblatt direkt
untereinander auflisten.
Das ist mein Code bisher:
For columna = 3 To 3
For rowa = 2 To 3000
If (Val(Cells(rowa, columna).value) = 1) Then
Range("D" + CStr(rowa)).Select
Selection.Copy
Range("F" + CStr(rowa)).Select
ActiveSheet.Paste
End If
Next rowa
Next columna
So wie die Schleife jetzt läuft, wird der bestimmte Wert aus der Zelle kopiert und 1:1 in der F Spalte in der selben Zeile eingefügt.
Wie könnte ich es so umschreiben, dass die Ergebnisse in einem anderen Tabellenblatt direkt untereinander kopiert werden?

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Bestimmte Zellen untereinander
14.12.2020 09:38:33
Nepumuk
Hallo,
teste mal:
Option Explicit

Public Sub Kopieren()
    Dim objCell As Range
    Dim strFirstAddress As String
    Dim lngRow As Long
    Set objCell = Columns(3).Find(What:=1, After:=Cells(Rows.Count, 3), LookIn:=xlValues, LookAt:=xlWhole)
    If Not objCell Is Nothing Then
        strFirstAddress = objCell.Address
        Do
            lngRow = lngRow + 1
            Call objCell.Offset(0, 1).Copy(Destination:=Worksheets("Tabelle2").Cells(lngRow, 1)) 'Anpassen !!!
            Set objCell = Columns(3).FindNext(After:=objCell)
        Loop Until objCell.Address = strFirstAddress
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: VBA Bestimmte Zellen untereinander
15.12.2020 09:21:59
Pedro
Tut mir leid für die späte Antwort, ich musste erstmal herausfinden wie man hier antwortet.
Danke für die Hilfe!
könnte man das ganze auch dynamischer machen? ich hatte versucht ein Array einzubauen, aber das scheint
nicht so wirklich zu funktionieren
AW: VBA Bestimmte Zellen untereinander
15.12.2020 10:03:25
Nepumuk
Hallo Pedro,
was willst du dynamischer machen? Wo willst du ein Array einbauen?
Gruß
Nepumuk
AW: VBA Bestimmte Zellen untereinander
15.12.2020 11:21:53
Pedro
Entschuldige, war von mir etwas zu wage ausgedrückt.
hier bei dem Bereich:
Set objCell = Columns(3).Find(What:=1, After:=Cells(Rows.Count, 3), LookIn:=xlValues, LookAt:=xlWhole)
Anstatt nur nach der "1" zu suchen, durchlaufende Zahlen. Da hatte ich die Idee ein Array einzufügen wo die zu suchenden Zahlen sich befinden.
Hier müsste man die Spalte durchlaufend machen, damit die neuen Werte nicht immer überschrieben werden.
Call objCell.Offset(0, 1).Copy(Destination:=Worksheets("Tabelle2").Cells(lngRow, 1))
Viele Grüße
Pedro
Anzeige
AW: VBA Bestimmte Zellen untereinander
15.12.2020 11:35:14
Nepumuk
Hallo Pedro,
teste mal:
Option Explicit

Public Sub Kopieren()
    
    Dim objCell As Range
    Dim strFirstAddress As String
    Dim lngRow As Long
    Dim vntItem As Variant
    
    With Worksheets("Tabelle2") 'Anpassen !!!
        lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    End With
    
    For Each vntItem In Array(1, 2, 3, 4, 5) 'Anpassen !!!
        
        Set objCell = Columns(3).Find(What:=vntItem, After:=Cells(Rows.Count, 3), LookIn:=xlValues, LookAt:=xlWhole)
        
        If Not objCell Is Nothing Then
            
            strFirstAddress = objCell.Address
            
            Do
                
                lngRow = lngRow + 1
                
                Call objCell.Offset(0, 1).Copy(Destination:=Worksheets("Tabelle2").Cells(lngRow, 1)) 'Anpassen !!!
                
                Set objCell = Columns(3).FindNext(After:=objCell)
                
            Loop Until objCell.Address = strFirstAddress
            
            Set objCell = Nothing
            
        End If
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: VBA Bestimmte Zellen untereinander
15.12.2020 11:54:29
Pedro
Hallo Nepumuk,
das Makro arbeitet, aber wenn ich mir das Ziel Tabellenblatt ansehe wird nichts hinterlegt.
So ähnlich war auch mein Problem, als ich versucht hatte ein Array einzubauen.
Vielen Dank für deine Zeit!
Viele Grüße
Pedro
AW: VBA Bestimmte Zellen untereinander
15.12.2020 11:56:34
Nepumuk
Hallo Pedro,
dann lade mal eine Mustermappe hoch.
Gruß
Nepumuk
AW: VBA Bestimmte Zellen untereinander
15.12.2020 12:35:01
Nepumuk
Hallo Pedro,
wenn ich das Makro laufen lassen kommt in Tabelle2 das heraus:
Arbeitsblatt mit dem Namen 'Tabelle2'
 A
1 
2123
3133
4143
5153
6163
7173
8124
9134
10144
11154
12164
13174
14125
15135
16145
17155
18165
19175
20126
21136
22146
23156
24166
25176
26127
27137
28147
29157
30167
31177

Benutzt du einen MAC? Da kann das anders sein, aber dazu kann ich nichts sagen.
Gruß
Nepumuk
Anzeige
AW: VBA Bestimmte Zellen untereinander
15.12.2020 13:00:42
Pedro
Hallo Nepumuk,
dass ist interessant, mit der Mustertabelle funktioniert das Makro bei mir auch.
Da muss ich wohl bei der eigentlichen Datei nochmal auf Fehlersuche gehen.
Eine Sache wollte ich noch gerne Fragen, ob es auch möglich ist, die Auflistung nebeneinander zu haben?
In dieser Form dann:
https://www.herber.de/bbs/user/142340.xlsx
Nochmal vielen Dank für deine Zeit!
Viele Grüße
Pedro
AW: VBA Bestimmte Zellen untereinander
15.12.2020 13:10:45
Nepumuk
Hallo Pedro,
das Makro muss aus der Datentabelle gestartet werden, nicht aus der Zieltabelle.
Option Explicit

Public Sub Kopieren()
    
    Dim objCell As Range
    Dim strFirstAddress As String
    Dim lngRow As Long, lngColumn As Long
    Dim vntItem As Variant
    
    lngColumn = 1
    
    For Each vntItem In Array(1, 2, 3, 4, 5) 'Anpassen !!!
        
        With Worksheets("Tabelle2") 'Anpassen !!!
            lngRow = .Cells(.Rows.Count, lngColumn).End(xlUp).Row
        End With
        
        Set objCell = Columns(3).Find(What:=vntItem, After:=Cells(Rows.Count, 3), _
            LookIn:=xlValues, LookAt:=xlWhole)
        
        If Not objCell Is Nothing Then
            
            strFirstAddress = objCell.Address
            
            Do
                
                lngRow = lngRow + 1
                
                Call objCell.Offset(0, 1).Copy(Destination:= _
                    Worksheets("Tabelle2").Cells(lngRow, lngColumn)) 'Anpassen !!!
                
                Set objCell = Columns(3).FindNext(After:=objCell)
                
            Loop Until objCell.Address = strFirstAddress
            
            Set objCell = Nothing
            
        End If
        
        lngColumn = lngColumn + 2
        
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: VBA Bestimmte Zellen untereinander
15.12.2020 13:18:00
Pedro
Hallo Nepumuk,
gestartet hatte ich es immer von der Datentabelle.
Ich habe jetzt einfach ein neues Tabellenblatt erstellt und diese als Zieltabellenblatt genommen und dann hat es komischerweise geklappt!
Nochmal vielen Dank Nepumuk!
Viele Grüße
Pedro

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige