Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
892to896
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
892to896
892to896
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ausgewählte Spalten kopieren

Ausgewählte Spalten kopieren
03.08.2007 11:12:00
Tommi
Liebe Excel-Experten,
ich habe im Forum folgenden Code finden können. Soweit, wie ich die Erklärung nachvollziehen konnte, wird hier der gesamte Inhalt von Tabelle1 nach Tabelle2 kopiert. Wäre es auch möglich, das so zu verändern, dass er nur bestimmte Datensätze kopiert werden, z.B. nur die, wo in Spalte A "Donau" steht?

Sub Worksheet_Activate()
Worksheets("Tabelle1").Range("A2:L2000").Copy _
Destination:=Worksheets("Tabelle2").Range("A2")
End Sub


Ich würde diesen Code dann gern auf mehrere Tabellen anwenden, sodass immer wenn, die jeweilige Tabelle geöffnet wird, der entsprechende Code aktiviert und kopiert wird. Ist das mit VBA möglich?
Lieben Dank und Grüße
Tommi

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausgewählte Spalten kopieren
03.08.2007 13:00:02
Peter
Hallo Tommi,
so geht es für alle Tabellenblätter - Empfangs-Tabelle ist z. Zt. Tabelle3, das musst du anpassen.


Option Explicit
Public Sub Kopieren()
Dim iBlatt     As Integer
Dim lZeile     As Long
Dim lLetzte_Q  As Long
Dim lLetzte_Z  As Long
Dim WkSh_Z     As Worksheet
   Application.ScreenUpdating = False
   Set WkSh_Z = Worksheets("Tabelle3")  ' <== Ziel-Tabellenblattnamen ggf. anpassen
   For iBlatt = 1 To Worksheets.Count
      If Worksheets(iBlatt).Name <> ("Tabelle3") Then
         With Worksheets(iBlatt)
            lLetzte_Q = IIf(.Range("A65536") <> "", 65536, .Range("A65536").End(xlUp).Row)
            For lZeile = 1 To lLetzte_Q
               If .Range("A" & lZeile).Value = "Donau" Then
                  lLetzte_Z = IIf(WkSh_Z.Range("A65536") <> "", _
                     65536, WkSh_Z.Range("A65536").End(xlUp).Row) + 1
                  Worksheets(iBlatt).Rows(lZeile).Copy _
                     Destination:=WkSh_Z.Range("A" & lLetzte_Z)
               End If
            Next lZeile
         End With
      End If
   Next iBlatt
   Application.ScreenUpdating = True
End Sub 


Gruß Peter

Anzeige
AW: Ausgewählte Spalten kopieren
03.08.2007 14:17:43
Tommi
Hallo Peter,
herzlichen Dank für den Code und die Arbeit, die Du Dir damit gemacht hast. Ich habe nun versucht, den Code wie folgt in meine Tabelle2 einzubinden, um zu erreichen, dass wenn Tabelle2 angewählt wird, dass dann automatisch die Datensätze des definierten Suchbegriffs hinüberkopiert werden. So sieht der Code jetzt aus (Ich habe die 65556 auf 1500 geändert, da ich dachte, dass es so schneller geht). Ich bekomme allerdings bei der Zeile 'If .Range("A" & lZeile).Value = "Donau" Then' die Systemmeldung "Typen unverträglich". Wie kann ich das umgehen? Und woher weiß das System eigentlich, von welchem Sheet es die Daten ziehen soll?
Option Explicit
Sub Worksheet_Activate()
Dim iBlatt As Integer
Dim lZeile As Long
Dim lLetzte_Q As Long
Dim lLetzte_Z As Long
Dim WkSh_Z As Worksheet
Application.ScreenUpdating = False
Set WkSh_Z = Worksheets("Tabelle2") 'Ziel-Tabellenblattnamen ggf. anpassen
For iBlatt = 1 To Worksheets.Count
If Worksheets(iBlatt).Name ("Tabelle2") Then
With Worksheets(iBlatt)
lLetzte_Q = IIf(.Range("A1500") "", 1500, .Range("A1500").End(xlUp).Row)
For lZeile = 1 To lLetzte_Q
If .Range("A" & lZeile).Value = "Donau" Then
lLetzte_Z = IIf(WkSh_Z.Range("A1500") "", _
1500, WkSh_Z.Range("A1500").End(xlUp).Row) + 1
Worksheets(iBlatt).Rows(lZeile).Copy _
Destination:=WkSh_Z.Range("A" & lLetzte_Z)
End If
Next lZeile
End With
End If
Next iBlatt
Application.ScreenUpdating = True
Vielen Dank für Feedback und schöne Grüße
Tommi

Anzeige
AW: Ausgewählte Spalten kopieren
03.08.2007 14:39:00
Peter
Hallo Tommi,
wenn du wirklich beim Aktivieren eines Tabellenblattes die Daten kopieren möchtest,
dann so, wobei eine Sicherung gegen doppelten Blatt Aufruf eingebaut ist.
https://www.herber.de/bbs/user/44744.xls
Gruß Peter

AW: Ausgewählte Spalten kopieren
03.08.2007 15:18:59
Tommi
Hallo Peter,
herzlichen Dank für Deine Mühen. Leider ist dies nicht ganz das, was ich versuche, umzusetzen. Das liegt aber leider daran, dass ich nicht so richtig weiß, wie ich es technisch korrekt formulieren kann. :-( Hinzu kommt, dass ich nur einen Teil des Projektes dargestellt habe. Ich versuche es daher noch einmal. Es tut mir wirklich sehr leid, dass dadurch so viel Arbeit verursacht worden ist.
Der eingangs von mir gepostete Code kopiert den Abschnitt A2:L2000 vom Sheet Tabelle1 nach Tabelle2. Dieser Code wird immer dann ausgeführt, wenn man Tabelle2 aufruft. So wollte ich es auch umsetzen. Zusätzlich sollen jedoch nur die Datensätzen aus Tabelle1 bei Aufruf von Tabelle2 nach Tabelle 2 kopiert werden, die den Begriff "Donau" enthalten. Bei Aufruf von Tabelle 3 sollen wiederum nur die Datensätze aus Tabelle1 nach Tabelle3 kopiert werden, die den Begriff "Rhein" enthalten. So soll gewährleistete werden, dass bei Aufruf von Tabelle2 bzw. Tabelle3 jeweils sämtliche aktuellen Daten von Tabelle1 enthalten sind. Bei Aufruf von Tabelle1 soll eigentlich nichts passieren.
Eine Sicherung gegen doppelten Blattabruf hatte ich bislang nicht eingeplant, da beim ursprünglichen Code eigentlich alles gut funktionierte - selbst wenn die Zeilenanzahl sich verringert. Da ich aber zugegebenermaßen wirklich ein kompletter Laie bin, kann ich leider nicht einschätzen, ob das überhaupt umsetzbar ist oder ob Dein Code das bereits mit kleinen Modifikationen kann. Ich habe durch das Forum schon viel gelernt und habe mir Deinen Code wirklich sehr lange angeschaut und daran herumgetüftelt. Aber ich kann ihn leider nicht so entschlüsseln, als dass ich ihn für oben geplantes Vorhaben abändern könnte.
Würdest Du mir vielleicht noch einmal unter die Arme greifen? Ich habe hier auf Basis Deiner Datei ein Beispiel angefertigt:

Die Datei https://www.herber.de/bbs/user/44747.xls wurde aus Datenschutzgründen gelöscht


Lieben Dank und schöne Grüße
Thomas

Anzeige
AW: Ausgewählte Spalten kopieren
03.08.2007 15:24:00
Tommi
Ohne unverschämt wirken zu wollen: Wäre es zusätzlich vielleicht auch möglich, die zu kopierenden Spalten auszuwählen (statt A1:M2000 die zusammengesetzten Datensätze von A1:I2000 und zusätzlich K1:M2000, sodass J1:J2000 nicht erscheint)? Wenn nicht, behelfe ich mich mit einem aufgenommenen Makro zum ausblenden der nicht gewünschten.
Das ist wirklich die letzte Modifikation des Projekts. Ich bin kein Nimmersatt.
Liebe Grüße
Tommi

AW: Ausgewählte Spalten kopieren
03.08.2007 16:13:00
Peter
Hallo Tommi,
ich versuche eine passende Lösung zu erstellen, es kann allerdings noch ein wenig dauern.
Gruß Peter

Anzeige
AW: Ausgewählte Spalten kopieren
03.08.2007 16:22:44
Tommi
:-) Super. Vielen lieben Dank. Das hat auch ruhig bis Montag Zeit - ich will auf keinen Fall drängeln.
Ein schönes Wochenende wünscht
Tommi

AW: Ausgewählte Spalten kopieren
03.08.2007 16:55:00
Peter
Hallo Tommi,
dann versuch es mit der beigefügten Version. https://www.herber.de/bbs/user/44754.xls
Achtung: In 'DieseArbeitsmappe' ist ein Mini-Makro hinterlegt, dass beim Aktivieren der Tabellenblätter aktiv wird.
das aktuelle Makro ist 'Zusammenfuehren' - die anderen kannst du ggf. löschen.
'Zusammenfuehren' ist auch dokumentiert.
Gruß Peter

Anzeige
AW: Ausgewählte Spalten kopieren
05.08.2007 21:13:00
Tommi
Hallo Peter,
herzlichen Dank für Dein Engagement. Der Code funktioniert wirklich wunderbar und Dank einer Dokumentierung konnte ich ihn auch problemlos auf weitere Tabellenblätter anwenden abwandeln.
Noch einmal ganz lieben Dank und schöne Grüße
Tommi

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige