Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
444to448
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
444to448
444to448
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

kopieren per VBA-----Code anbei

kopieren per VBA-----Code anbei
22.06.2004 09:50:25
Peter
Hallo an Euch und einen guten Morgen,
mit untenstehendem Code kopiere ich per cmdButton1 den Inhalt der Tabelle1 in Tabelle2 und lasse mir das auf der UF1 in einem Spreadsheet zeigen.....klappt auch bestens.........jedoch möchte ich das Ganze noch begrenzen:

Private Sub cmdButton1_Click()
Application.ScreenUpdating = False
Dim strTabellenname As String
Dim bFound          As Boolean
Dim ws              As Worksheet
Dim wsQuelle        As Worksheet
Dim wsZiel          As Worksheet
Set wsQuelle = Sheets("Tabelle1")
strTabellenname = "Tabelle2"
For Each ws In Worksheets
If ws.Name = strTabellenname Then
bFound = True
Set wsZiel = ws
End If
Next
If Not bFound Then
Set wsZiel = Worksheets.Add
wsZiel.Name = strTabellenname
End If
wsQuelle.Range("A2:I100").Copy
wsZiel.Range("A16:I86").PasteSpecial Paste:=xlPasteValues
UF1.Show
End Sub

Es soll nur der Inhalt der Spalten A,B,C,E und I kopiert werden....und auch nur die Datensätze, bei denen der Wert in Spalte H = B ist.
Wer kann mir da helfen?
Danke
Peter S.

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

Betreff
Datum
Anwender
Anzeige
AW: kopieren per VBA-----Code anbei
22.06.2004 10:31:36
Uwe
Hallo Peter,
so sollte es gehen:

Private Sub cmdButton1_Click()
Dim strTabellenname As String
Dim bFound As Boolean
Dim lZeile As Long
Dim rngGefiltert As Range
Dim rngZelle As Range
Dim ws As Worksheet
Dim wsQuelle As Worksheet
Dim wsZiel As Worksheet
Set wsQuelle = Sheets("Tabelle1")
strTabellenname = "Tabelle2"
For Each ws In Worksheets
If ws.Name = strTabellenname Then
bFound = True
Set wsZiel = ws
End If
Next
If Not bFound Then
Set wsZiel = Worksheets.Add
wsZiel.Name = strTabellenname
End If
For Each rngZelle In wsQuelle.Range("H2:H100").Cells
If rngZelle = "B" Then
lZeile = rngZelle.Row
If rngGefiltert Is Nothing Then
Set rngGefiltert = _
Application.Union(Cells(lZeile, 1), _
Cells(lZeile, 2), _
Cells(lZeile, 3), _
Cells(lZeile, 5), _
Cells(lZeile, 9))
Else
Set rngGefiltert = _
Application.Union(rngGefiltert, _
Cells(lZeile, 1), _
Cells(lZeile, 2), _
Cells(lZeile, 3), _
Cells(lZeile, 5), _
Cells(lZeile, 9))
End If
End If
Next rngZelle
rngGefiltert.Copy
wsZiel.Range("A16").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
UF1.Show
End Sub

Gruß Uwe
Anzeige
AW: kopieren per VBA-----Code anbei
22.06.2004 10:43:38
Peter
Hallo Uwe,
zunächst mal vielen Dank für Deine Hilfe.....der Code selektiert richtig und will es auch an die richtige Stelle kopieren (der Bereich is dann aktiviert = umrahmt), jedoch führt der die Kopie nicht aus....d.h. der Inhalt wird dann nicht reingeschrieben in Tabelle2 ?
Wo könnte der kleine Haken noch sitzen?
Danke
Peter S.
AW: kopieren per VBA-----Code anbei
22.06.2004 11:41:55
Uwe
Hallo Peter,
da bin ich etwas ratlos. Bei mir klappt das einwandfrei.
Hast Du die 'TakeFocusOnClick'-Eigenschaft des Buttons auf 'False' gesetzt?
Wenn nicht, dann mach das mal.
Gruß Uwe
AW: kopieren per VBA-----Code anbei
22.06.2004 12:08:07
Peter
Hallo Uwe,
sie war auf True gestanden....habe es abgeändert auf False, aber es hatte keine Auswirkung......habe die Datei sogar gespeichert, geschlossen und wieder aufgerufen?
Ich verstehe das nicht
Gruß
Peter S.
Anzeige
AW: kopieren per VBA-----Beispieldatei
22.06.2004 12:32:34
Peter
Hallo Uwe,
schau dir das mal an......bei cklick in Tabelle3 öffnet sich die UF
https://www.herber.de/bbs/user/7596.xls
genau der Effekt ist auch in meiner Originaldatei?
Gruß
Peter S.
Gelöst......mit Text
22.06.2004 12:56:21
Peter
Hallo Uwe,
habe das Problem gefunden......habe am Anfang in den Code eingefügt: Tabelle1.Activate
und dann funktioniert es prima.
Ich vermute Du hast den Code aus der Tabelle1 heraus gestartet und brauchtest dies deshalb nicht einfügen.
Vielen Dank für Deine Hilfe
Peter S.
AW: Gelöst......mit Text
22.06.2004 13:11:45
Uwe
Hallo Peter,
ja, ich habs aus Tabelle1 gestartet. Eben bin ich auch darauf gekommen mit 'wsQuelle.Activate'. Komischerweise bezieht sich der Code beim Kopieren auf die Tabelle, die beim Laden der Userform gerade aktiv war.
Also dann ist ja alles klar, oder auch nicht ganz, aber es funktioniert. :-)
Gruß Uwe
Anzeige
Yep....Ergebnis gut alles gut...:)) o.T.
22.06.2004 14:08:43
Peter
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige