Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
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 select then copy then paste

VBA select then copy then paste
27.12.2013 18:35:00
Paul
Hallo Leute,
ich hoffe Ihr könnt mir helfen. Ich möchte aus Tabelle 1 zunächst Spalte M nach dem Wert/Wort "Germany" durchsuchen, anschließend aus der Spalte AF den korrespondierenden Wert in Tabelle 2 Spalte F einfügen. Das ganze sollte möglichst über ein Command Button in Tabelle 2 laufen, da die Werte in Tabelle 1 erst reinkopiert werden müssen (manuell).
Ich kenne mich ein wenig in VBA aus, würde die Formel aber nicht alleine hinbekommen. Wäre sehr nett wenn Ihr mir eine Beschreibung reinpackt damit ein Lerneffekt dqbei ist :)
Viele Grüße
Paul

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

Betreff
Datum
Anwender
Anzeige
AW: VBA select then copy then paste
28.12.2013 09:11:05
Beverly
Hi Paul,
habe ich das richtig verstanden, dass in beiden Tabellen in Spalte "M" nach "Germany" gesucht werden soll? Versuche es mal so:
Sub Kopieren()
Dim rngQuelle As Range
Dim rngZiel As Range
With Worksheets("Tabelle2")
Set rngZiel = .Columns("M").Find("Germany", lookat:=xlWhole)
If Not rngZiel Is Nothing Then
Set rngQuelle = Columns("M").Find("Germany", lookat:=xlWhole)
If Not rngQuelle Is Nothing Then rngZiel.Offset(0, -7) = _
.Range(rngQuelle.Address).Offset(0, 19)
End If
End With
Set rngZiel = Nothing
Set rngQuelle = Nothing
End Sub
Gesucht wird in Tabelle2 Spalte M (Ziel) nach "Germany" - wenn gefunden, dann wird in Tabelle1 Spalte M (Quelle) gesucht nach "Germany" - wenn gefunden dann Wert in Zieltabelle Spalte F (7 Spalten links von M aus) = Wert aus Quelltabelle Tabelle1 Spalte AF (19 Spalten nach rechts von M aus).
Das Makro kannst du mit einem Schalter aus den Formularsteuerelementen verknüpfen.


Anzeige
Korrektur
28.12.2013 09:16:16
Beverly
Hi Paul,
sorry, der Code hatte noch einen Fehler - so müsste er jetzt korrekt sein:
Sub Kopieren()
Dim rngQuelle As Range
Dim rngZiel As Range
With Worksheets("Tabelle2")
Set rngZiel = .Columns("M").Find("Germany", lookat:=xlWhole)
If Not rngZiel Is Nothing Then
Set rngQuelle = Worksheets("Tabelle1").Columns("M").Find("Germany", lookat:=xlWhole)
If Not rngQuelle Is Nothing Then rngZiel.Offset(0, -7) = _
Worksheets("Tabelle1").Range(rngQuelle.Address).Offset(0, 19)
End If
End With
Set rngZiel = Nothing
Set rngQuelle = Nothing
End Sub


Anzeige
AW: Korrektur
29.12.2013 03:38:23
Paul
Hi Karin,
danke dir schonmal für die Formel und die Erklärung. Ich meinte er soll in Tabelle 1 in Spalte M die Werte Germany suchen. Dann in der Spalte AF die Werte kopieren und in Tabelle 2 Spalte F einfügen. Kein doppelcheck.
Die Formel funktioniert demnach nicht, ich hab versucht sie anzupassen, hat leider nicht geklappt.
VG
Paul

AW: Korrektur
29.12.2013 09:31:36
Beverly
Hi Paul,
und wie sollen die Werte eingefügt werden - immer an der selben Stelle oder fortlaufend? Kommt der Begriff "Germany" mehrfach oder nur einmalig vor in Tabelle1? Da musst du schon mal genauer beschreiben, was das Ergebnis sein soll - schließlich kenne ich deine Mappe nicht, denn ich lehne es ab, übers Internet auf fremde Rechner zu schauen ;-)
Übrigens: das ist keine Formel sondern ein Makro oder VBA-Code.


Anzeige
AW: Korrektur
29.12.2013 23:41:01
Paul
Hallo Karin/Beverly,
Der Wert Germany kommt in der Spalte M mehrmals vor, in Spalte AF stehen die eindeutigen Werte die ich untereinander/fortlaufend für jeden Germany Wert in Spalte F Tabelle 2 kopieren will.
VG
Paul

AW: Korrektur
30.12.2013 09:05:34
Beverly
Hi Paul,
Sub Kopieren()
Dim rngQuelle As Range
Dim strStart As String
Dim lngZeile As Long
lngZeile = 1
With Worksheets("Tabelle1")
Set rngQuelle = .Columns("M").Find("Germany", lookat:=xlWhole)
If Not rngQuelle Is Nothing Then
strStart = rngQuelle.Address
Do
Cells(lngZeile, 6) = .Range(rngQuelle.Address).Offset(0, 19)
lngZeile = lngZeile + 1
Set rngQuelle = .Columns("M").FindNext(rngQuelle)
Loop While Not rngQuelle Is Nothing And rngQuelle.Address  strStart
End If
End With
Set rngQuelle = Nothing
End Sub
Du siehst also, wie wichtig es ist, die Aufgabenstellung korrekt zu beschreiben, weil davon der Lösungsweg abhängig ist.


Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige