Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1912to1916
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
In Spalte suchen
04.01.2023 10:58:47
Tina
Hallo liebes Forum,
ich bin neu hier im Forum und bitte um Hilfe da ich noch nicht so viel VBA Erfahrung habe. Diese aber auch gerade versuche etwas auszubauen.
Ich möchte zwei Tabellen bestimmt Werte zusammen führen.
Klingt erstmal nicht spektakulär. Aber in Tabelle 1 möchte ich nach einem Datum suchen, ist dieses gefunden soll aus dieser Tabelle Zeile 1+2 aus Spalte B und aus Spalte D der erste Wert kopiert werden. Anschließend sollen diese Werte in Tabelle 2 untereinander in D5 eingefügt werden. Beginnend mit dem Wert aus Spalte D von Tabelle 1.
Versteht jemand was ich meine.
LG Tina

33
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Spalte suchen
04.01.2023 11:46:16
onur
Ja.
Und was genau ist das Problem?
AW: In Spalte suchen
04.01.2023 11:55:07
Tina
Ich habe keine Idee, wie ich die Zeilen kopieren soll über VBA und dann untereinander wieder einfügen kann.
AW: In Spalte suchen
04.01.2023 12:02:46
onur
Wenn ich, als Nicht-KFZ-Mechaniker, zu Fuss in die KFZ-Werkstatt gehen und den Meister fragen würde, wie man Bremsen wechselt, würde er wohl sagen: "Ich kann dir nicht stundenlang etwas erklären, was du alleine sowieso nicht hinbekommst. Bring das Auto mit und ich bau dir das Ding in 5 min ein !"
Also: Poste die (Beispiels-) Datei (am Besten mit Wunschergebnis) und jemand schreibt dir das Makro dazu.
AW: In Spalte suchen
04.01.2023 19:32:58
Tina
Tut mir leid ich bin neu im Forum, ich wusste nicht das man auch Dateien hochladen kann.
Hier die Liste:
https://www.herber.de/bbs/user/157089.xlsx
Vielen Dank für die Hilfe!
LG Tina
Anzeige
AW: In Spalte suchen
04.01.2023 20:36:24
onur
Kein Problem.
Kannst du bitte noch anhand eines Beispiels in der Datei mal darstellen, wie das nachher aussehen soll ?
AW: In Spalte suchen
04.01.2023 20:49:22
Tina
Hier die neue Datei. Ich möchte in der Datei nach einem Datum suchen und die Werte (als Beispiel hier in der Datei gelb markiert) in das andere Tabellenblatt untereinander kopieren.
https://www.herber.de/bbs/user/157091.xlsx
AW: In Spalte suchen
04.01.2023 20:55:00
onur
Und da können auch mehr als 2 Namen von der Firma auftreten?
Muss es VBA sein?
Darf ich "Übersicht" so verändern?
AW: In Spalte suchen
04.01.2023 21:10:26
Tina
Ja am besten wäre über VBA.. Aber wenn es eine andere Lösung gibt, ist das auch super.
Ne, es gibt immer nur zu einer Firma zwei Mitarbeiter. Es kommt eigentlich nie für das zwei Mitarbeiter von zwei unterschiedlichen Firmen sind l.
Anzeige
AW: In Spalte suchen
04.01.2023 21:13:29
Tina
Die Übersicht kann verändert werden, jedoch sollte das Format so eigentlich bleiben, wenn es geht.
AW: In Spalte suchen
04.01.2023 22:06:45
Tina
Ja genau, so ist das schon mal gut. Aber wenn ich die Tabelle Zeitarbeitsfirmen erweitert und dann auf den Button klicke. Erweitert er das nicht/kopiert er das nicht. Z.B. auf 09.01, dann kopiert er das nicht.
AW: In Spalte suchen
04.01.2023 22:07:55
onur
DAVON war nie die Rede - oder?
Gedankenlesen kann ich nicht....
AW: In Spalte suchen
04.01.2023 22:11:23
onur
Ändere die Zeile wie folgt:
For z2 = 4 To 1000
AW: In Spalte suchen
04.01.2023 22:22:38
Tina
Super, genau so..Danke!
Nachfrage noch, damit ich den Code auch etwas verstehe:
For s = 3 To 10
z = 11
dat = Cells(3, s)
Was genau macht diese Schleife?
Anzeige
AW: In Spalte suchen
04.01.2023 22:38:05
onur
Der Code geht im Blatt Übersicht Spalte 3 bis 10 durch, liest dabei das Datum (dat) aus. Für jede dieser Spalten setzt er die Anfangszeile auf 11 (ab da erfolgen ja die Einträge). Dann sucht er dieses Datum auf Blatt Zeitarbeiterfirmen in Spalte 2. Wenn gefunden (das erste mal in Zeile 4), schaut er nach, ob Spalte 5 ungleich ist mit Spüalte 5 der Zeile drüber (also ob der Firmenname zum ersten mal auftaucht). Wenn ja, trägt er den Namen in Blatt Übersicht Zeile z (also noch 11) ein, erhöht z um 1 und trägt in Zeile z (also 12) den Namen ein und erhöht z wieder um 1, also auf 13.
Wenn nein (also beim zweiten mal), trägt er nur den Namen ein und erhöht wieder z um 1, also 14.
Dann geht der Code zur nächsten Spalte (nächstes Datum) auf Übersicht, setzt wieder die Zeile z auf 11 usw usw.
Anzeige
AW: In Spalte suchen
04.01.2023 22:46:39
onur
Hier etwas überarbeitet (es war noch Restmüll aus der Testphase drin):

Private Sub CommandButton1_Click()
Dim z, s, dat, z2
With Sheets("Zeitarbeiterfirmen")
For s = 3 To 10
z = 11
dat = Cells(3, s)
For z2 = 4 To 1000
If .Cells(z2, 2) = dat Then
If .Cells(z2, 5)  .Cells(z2 - 1, 5) Then Cells(z, s) = .Cells(z2, 5): z = z + 1 'Firma eintragen
Cells(z, s) = .Cells(z2, 3): z = z + 1: 'Name
End If
Next z2
Next s
End With
End Sub

AW: In Spalte suchen
05.01.2023 08:10:30
Tina
Vielen Dank dafür! Und auch für die gute Erklärung!
AW: In Spalte suchen
05.01.2023 08:24:52
Tina
Eine kurze Frage habe ich dann doch noch, kann ich bevor er die Schleife durchläuft, irgendwie sagen das der Bereich ab Zeile 11 in der Übersicht gelöscht werden soll. Und dann erst kopiert wird? Mir ist nämlich aufgefallen, dass wenn sich Einträge ändern ja bestehen bleiben und es besser wäre, wenn vorher alles einmal gelöscht wird ab Zeile 11 in der Übersicht.
Danke! Und entschuldige die vielen Nachfragen.
Anzeige
AW: In Spalte suchen
05.01.2023 11:27:50
onur
Hätte ich selbst dran denken müssen:

Private Sub CommandButton1_Click()
Dim z, s, dat, nam1, nam2, fa, z2
With Sheets("Zeitarbeiterfirmen")
For s = 3 To 10
z = 11
Range(Cells(11, s), Cells(100, s)).ClearContents
dat = Cells(3, s)
For z2 = 4 To 9
If .Cells(z2, 2) = dat Then
If .Cells(z2, 5)  .Cells(z2 - 1, 5) Then Cells(z, s) = .Cells(z2, 5): z = z + 1 'Firma eintragen
Cells(z, s) = .Cells(z2, 3): z = z + 1: 'z2 = z2 + 1 'Name1
End If
Next z2
Next s
End With
End Sub

AW: In Spalte suchen
05.01.2023 11:55:30
Tina
Super danke!
Ich hatte in der Zwischenzeit auch einmal ein bisschen getestet, und das über:
Worksheet ("Übersicht").Range("B11:BI500").ClearContest gemacht und vor der ersten For Schleife gesetzt.
Ist mein Lösungsansatz falsch? Sollte der Löschvorgang lieber innerhalb der Form Schleife stehen?
Anzeige
AW: In Spalte suchen
05.01.2023 12:00:52
onur
Eigentlich ist deine Lösung sogar besser. :)
Blattnamen brauchst du aber nicht anzugeben, da du dich ja im Modul desjenigen Blattes befindest, das du ansprechen willst.
Immer nur, wenn du dich nicht auf dem Blatt befindest, musst du den Namen angeben.
AW: In Spalte suchen
05.01.2023 12:07:36
Tina
Okay, danke! Also würde: Range("B11:BI500").ClearContest ausreichen? Richtig?
Spielt es eine Rolle ob das vor der For Schleife steht oder innerhalb?
AW: In Spalte suchen
05.01.2023 12:09:45
onur
Aussen war schon ok, du musst es ja nur ein mal durchführen. Ich hatte es ja innerhalb, da ich Spalte für Spalte gelöscht hatte, du jedoch en bloc.
AW: In Spalte suchen
05.01.2023 12:11:58
Tina
Okay, super danke für die Unterstützung und Hilfe! Und tut mir leid für die vielen Nachfragen. Möchte das nur ein wenig verstehen und dazu lernen.
Anzeige
gern geschehen!
05.01.2023 12:31:19
onur
AW: In Spalte suchen
06.01.2023 13:13:40
Tina
Ich habe die Abfrage jetzt mal umgebaut und in meiner original Datei übertragen.
Wenn ich die Schleife so aufbaue. Stützt Excel immer ab.
Kann das an der For Schleife liegen?
Range("D42:BI500"). ClearContents
For s = 3 To 500
z = 43
dat = Cells(2, s)
For z2 = 4 To 500
If .Cells(z2, 2) = dat Then
If .Cells(z2, 5) .Cells(z2 - 1, 5) Then Cells(z, s) = .Cells(z2, 5): z = z + 1 'Firma eintragen
Cells(z, s) = .Cells(z2, 3): z = z + 1: 'z2 = z2 + 1 'Name1
End If
Next z2
Next s
End With
End Sub
AW: In Spalte suchen
06.01.2023 13:18:39
onur
Keine Ahnung. Ohne die Datei ist das schwer....
Anzeige
AW: In Spalte suchen
06.01.2023 13:33:30
Tina
Hab das Problem glaube ich, meine Schleife läuft ja Bus 500 Zeilen durch. Der letzte Eintrag liegt aber bei Zeile 275. Dabei hängt sich Exel immer auf. Da nach Zeile 275 keine Einträge mehr vorhanden sind aber weiter gesucht wird.
AW: In Spalte suchen
06.01.2023 13:37:54
Tina
Kann ich nicht die Schleife beenden, wenn der letzte Eintrag in der letzten Zeile leer eingetragen wird. Also die Schleife soll solange durchlaufen bis in der letzten Zeile leer drin steht..
AW: In Spalte suchen
06.01.2023 13:49:40
onur
Du hast doch keine 500 Spalten - oder ?
AW: In Spalte suchen
06.01.2023 13:52:48
Tina
Ne das nicht aber wenn ich die Tabelle erweitern möchte. Die wird ja fortlaufend gepflegt. Irgendwann kommt ich dann ja dort an und dann hab ich ja die 500 Zeilen so muss ich immer den Code dann anpacken. Hatte jetzt überlegt wenn ich in der letzten Zeile immer leer stehen habe und die For Schleife dann endet das es dann schneller geht bestimmt.
Anzeige
AW: In Spalte suchen
06.01.2023 13:59:34
onur

If .Cells(z2, 2) = dat Then
ändern in

If .Cells(z2, 2) = dat And dat  "" Then

AW: In Spalte suchen
06.01.2023 14:02:45
Tina
Klasse! Vielen Dank, auch für die schnelle Rückmeldung!

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige