Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Suchen und kopieren mit VBA
24.08.2018 12:45:57
Andy
Hallo. Ich versuche gerade eine Datei für meine Arbeit etwas besser zu machen. Leider komme ich mit meinem derzeitigen Wissen nicht weiter. Folgendes Problem:
Ich habe eine Tabelle1 in der Zelle A1 eine Personalnummer steht und eine Tabelle2 mit 2 Spalten. In Spalte A stehen wieder die Personalnummern und in Spalte B die entsprechenden Namen zur Personalnummer.
Ich möchte jetzt gerne mit einem CommandButton in Tabelle1 folgendes erreichen. Es soll die Zeile mit Personalnummer von Tabelle1.[A1] in der Tabelle2 gesucht werden und in die Tabelle 2 auf der entsprechenden Zeile die Spalten C und D mit Werten aus Tabelle1 (A2 und A3) befüllt werden.
Das ganze muss über VBA laufen, da ich keine Formeln in der Tabelle1 und 2 haben möchte. Hatte schon einiges mit der FIND-Methode probiert. Komme da aber nicht weiter, da meine Kenntnisse dafür leider nicht reichen.
Vielen Dank an alle Helfenden

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
doppelt owT.
24.08.2018 13:36:40
ChrisL
.
AW: Suchen und kopieren mit VBA
24.08.2018 13:51:15
Klexy
So könnte es gehen:
Sub Personalangaben_in_Tabelle2()
Pers = Worksheets("Tabelle1").Range("A1").Value
Bla = Worksheets("Tabelle1").Range("A2").Value
Blub = Worksheets("Tabelle1").Range("A3").Value
Set Suchbereich = Range(Worksheets("Tabelle2").Cells(1, 1), Worksheets("Tabelle2").Cells( _
Worksheets("Tabelle2").UsedRange.Rows.Count, 1))
For Each Zelle In Suchbereich
If Zelle.Value = Pers Then
Zelle.Offset(0, 2).Value = Bla
Zelle.Offset(0, 3).Value = Blub
End If
Next
End Sub

AW: Suchen und kopieren mit VBA
27.08.2018 06:40:24
Andy
Hallo. Vielen Dank für deine Hilfe. Der läuft wie ich es wollte. Allerdings habe ich noch ein kleines Problem. Bei diesem Code muss die Tabelle2 in der selben Datei sein. Bei mir ist die Tabelle2 und die Tabelle1 jeweils eine eigenständige Datei. Hatte es mit worbook statt worksheet probiert. Läuft aber nicht leider. Danke
Anzeige
AW: Suchen und kopieren mit VBA
27.08.2018 06:40:33
Andy
Hallo. Vielen Dank für deine Hilfe. Der läuft wie ich es wollte. Allerdings habe ich noch ein kleines Problem. Bei diesem Code muss die Tabelle2 in der selben Datei sein. Bei mir ist die Tabelle2 und die Tabelle1 jeweils eine eigenständige Datei. Hatte es mit worbook statt worksheet probiert. Läuft aber nicht leider. Danke
AW: Suchen und kopieren mit VBA
27.08.2018 11:46:21
Klexy
Workbook UND Worksheet.
Sub Personalangaben_in_Tabelle2()
Pers = Workbooks("Datei1.xlsm").Worksheets("Tabelle1").Range("A1").Value
bla = Workbooks("Datei1.xlsm").Worksheets("Tabelle1").Range("A2").Value
Blub = Workbooks("Datei1.xlsm").Worksheets("Tabelle1").Range("A3").Value
Set Suchbereich = Range(Workbooks("Datei2.xlsm").Worksheets("Tabelle2").Cells(1, 1),  _
Workbooks("Datei2.xlsm").Worksheets("Tabelle2").Cells(Workbooks("Datei2.xlsm").Worksheets("Tabelle2").UsedRange.Rows.Count, 1))
For Each Zelle In Suchbereich
If Zelle.Value = Pers Then
Zelle.Offset(0, 2).Value = bla
Zelle.Offset(0, 3).Value = Blub
End If
Next
End Sub

Anzeige
AW: Suchen und kopieren mit VBA
30.08.2018 08:59:56
Andy
Danke Klexy. Genauso hab ich es mir vorgestellt. Genial. Habe gerade noch gemerkt das es gut wäre wenn noch eine MsgBox kommt wenn die PersNr. nicht gefunden wird. Hatte probiert es als Else in der If Funktion zu definieren aber dann kommt die Meldung immer egal ob gefunden oder nicht.
For Each Zelle In Suchbereich
If Zelle.Value = Pers Then
Zelle.Offset(0, 2).Value = bla
Zelle.Offset(0, 3).Value = Blub
Else
If Zelle.Value Pers Then
MsgBox "nicht vorhanden"
Exit Sub
End If
Gruß Andy
AW: Suchen und kopieren mit VBA
30.08.2018 17:31:37
ChrisL
https://www.herber.de/forum/messages/1641710.html
Sub t()
Dim WS1 As Worksheet: Set WS1 = Workbooks("Datei1.xlsm").Worksheets("Tabelle1")
Dim WS2 As Worksheet: Set WS2 = Worksheets("Tabelle2")
Dim lZ As Long
If WorksheetFunction.CountIf(WS2.Columns(1), WS1.Range("A1")) > 0 Then
lZ = Application.Match(WS1.Range("A1"), WS2.Columns(1), 0)
WS2.Cells(lZ, 3) = WS1.Range("A2")
WS2.Cells(lZ, 4) = WS1.Range("A3")
Else
MsgBox "kein Match"
End If
End Sub

Anzeige

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige