Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1516to1520
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 Tabelle Kopieren und Einfügen

VBA Tabelle Kopieren und Einfügen
24.09.2016 11:03:55
D.
Wie bekomme es jetzt hin, das der Tabelleninhalt der "Tabelle1" in die hier erzeugte Tabelle ""Originalkopie" 1:1 eingefügt wird?
Folgendes Modul entspricht meinen Erwartungen- jedoch fehlt noch der Befehl Kopieren.
Nach dem Ausführen sollte aber die "Tabelle1" Aktiv bleiben.
Kann wer Nachhilfe geben?
Sub Kopie_Tabelle1()
'** neues Blatt Anlegen
Dim blatt As Object
Dim BlattName As String
Dim bloFlg As Boolean
'** Blattname festlegen
BlattName = "Originalkopie"
'** Prüfen, ob das Blatt, welches eingefügt werden soll bereits vorhanden ist
'** Nur einfügen, wenn Blatt noch nicht vorhanden ist
For Each blatt In Sheets
If blatt.Name = BlattName Then bolflg = True
Next blatt
'** Blatt nur einfügen, wenn noch nicht vorhanden
If bolflg = False Then
With ThisWorkbook
.Sheets.Add After:=Sheets(Worksheets.Count)
.ActiveSheet.Name = "Originalkopie"
End With
End If
End Sub

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nur eine Vermutung ...
24.09.2016 13:44:17
Matthias
Hallo
Vielleich will Dir ja im Moment keiner helfen.
Wenn man nicht mal "Hallo" sagen/schreiben kann wundert mich das nicht.
Mit einem Gruß am Ende kommt eine Hilfesuchender ebenfalls symphatischer an.
Warum machst Du einen neuen Thread auf
https://www.herber.de/forum/messages/1516074.html
Übrigens:
Ein anderer Name als nur D. wäre sicherlich auch für Dich günstiger.
Denn dann kannst Du in der Listen-Suche besser nach Deinen Beiträgen suchen.
So kommen viel zu viele Beiträge wenn mann nur nach D. suchen/filtern will.
Ich lass den Beitrag trotzdem offen.
Gruß Matthias
Anzeige
AW: nur eine Vermutung ...
24.09.2016 14:24:36
Andreas
Hallo Matthias,
danke für die Belehrung- hab in der Eile die Formalitäten vergessen. Habe mich mit D registriert- war dann wohl ein Fehler. habe mir darüber auch nicht ganz so die Gedanken gemacht. Egal
Den Namen kannst Du ja beliebig wählen
24.09.2016 15:01:46
Matthias
Hallo Andreas,
den Namen kannst Du ja beliebig wählen
registriert bist Du über Deine Email-Adresse.
Das hast Du ja nun schon bemerkt ;-)
Ich lass offen
Gruß Matthias
AW: Den Namen kannst Du ja beliebig wählen
24.09.2016 15:32:06
Andreas
Hallo Matthias
danke hab ich soeben gemacht- wusste ja nicht das das so wichtig ist- aber hast recht - es gehört sich nicht. Die Helfer sind ja meist nette Menschen und kein Virtuelles Gebilde. Nur leider komm ich dadurch auch nicht weiter. Habe mir schon eine Tabelle zerstört- als diese dann 50 x Eingefügt wurde. Hab den falschen Code getestet. Danach war ich etwas sauer weil ich von vorn Anfangen musste. Als Anfänger ist es sowieso sehr schwer. Aber ich werde es lernen.
Hatte auf Hilfe gehofft- und weniger auf das unwichtigere Wert gelegt.
Gruß Andreas D.
Anzeige
AW: Den Namen kannst Du ja beliebig wählen
24.09.2016 15:54:53
Matthias
Hallo Andreas
Zitat:
danke hab ich soeben gemacht- wusste ja nicht das das so wichtig ist
Nein, wichtig ist das nicht.
Nur eben günstiger Deine eigenen Beiträge in der Baumstruktur der Beiträge "von Heute" zu finden.
Zitat:
Habe mir schon eine Tabelle zerstört- als diese dann 50 x Eingefügt wurde. Hab den falschen Code getestet.
Das ist ärgerlich und hat hoffentlich dazu geführt, das Du nun immer eine Datensicherung zur Verfügung hast.
Das mache ich seit zig Jahren so.
Jede Veränderung einer Datei bekommt bei mir eine neue Versionsnummer. Immer um einen Zähler höher.
So kann ich immer auf die letzte Version zurückgreifen wenn was schief geht.
Bleiben wir nun aber im letzten Zweig der Baumstruktur.
Dort bekommst Du gleich noch einen Hinweis/Tipp von mir.
Gruß Matthias
Anzeige
Hinweis Option Explicit
24.09.2016 15:20:51
Matthias
Hallo
Noch ein wichtiger Hinweis
Benutze Option Explicit als oberste Zeile im Modul
Dann wäre es Dir angezeigt worden, das Du in Deinen Variablendeklarationen einen Fehler hast.
Du deklarierst die Boolsche Variable
Dim bloFlg As Boolean
Im weiteren Verlauf aber benutzt Du:
If blatt.Name = BlattName Then bolflg = True
Hättest Du es bemerkt ?
Gruß Matthias
AW: Hinweis Option Explicit
24.09.2016 15:36:05
Andreas
Danke für den Hinweis, Matthias- den Fehler hätt ich so nicht entdeckt.
Anzeige
AW: Hinweis Option Explicit
24.09.2016 16:02:33
Andreas
Hallo,
allerdings funktioniert das so noch nicht. Ist der Code so richtig?
Es sollte die "Tabelle1" in eine neue Tabelle "Originalkopie" 1:1 Kopiert werden, aber die Aktive Tabelle soll "Tabelle1" bleiben.
Option Explicit
Sub Kopie_Tabelle1()
'** neues Blatt Anlegen
Dim blatt As Object
Dim BlattName As String
Dim bolflg As Boolean
'** Blattname festlegen
BlattName = "Originalkopie"
'** Prüfen, ob das Blatt, welches eingefügt werden soll bereits vorhanden ist
'** Nur einfügen, wenn Blatt noch nicht vorhanden ist
For Each blatt In Sheets
If blatt.Name = BlattName Then bolflg = True
Next blatt
'** Blatt nur einfügen, wenn noch nicht vorhanden
If bolflg = False Then
With ThisWorkbook
.Sheets.Add After:=Sheets(Worksheets.Count)
.ActiveSheet.Name = "Originalkopie"
End With
End If
Gruß Andreas
Anzeige
AW: Hinweis Option Explicit
24.09.2016 16:23:38
Matthias
Hallo Andreas
Du kannst auch den Makrorekorder benutzen
Der zeichnet alle Deine Vorgänge auf.
Aber eben auch alles was man nicht braucht, trotzdem ein sehr gutes Werzeug!
Versuchs mal so:
Tabelle1.Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "Orginalkopie"
Tabelle1.Activate
Gruß Matthias
Option Explicit
24.09.2016 16:11:20
Matthias
Hallo Andreas
Bleiben wir nun in diesem Zweig der Baumstruktur.
Einen Hinweis /Tipp habe ich noch für Deine Schleife.
Du benutzt Folgende:
'** Blattname festlegen
BlattName = "Originalkopie"
'** Prüfen, ob das Blatt, welches eingefügt werden soll bereits vorhanden ist
'** Nur einfügen, wenn Blatt noch nicht vorhanden ist
For Each blatt In Sheets
If blatt.Name = BlattName Then bolflg = True
Next blatt
'** Blatt nur einfügen, wenn noch nicht vorhanden
If bolflg = False Then

Es ist eigentlich nicht nötig die Schleife fortzusetzen, wenn es das Blatt mit diesem Namen schon gibt!
Ich würde die Schleife verlassen/Prozedur beenden, wenn es den Namen schon gibt.
Warum also weiteren Blätter abfragen?
so geht das:
For Each blatt In Sheets
If blatt.Name = BlattName Then bolFlg = True
MsgBox "Blatt ist schon vorhanden, Prozedur beenden", vbInformation, BlattName
Exit Sub
Next blatt
oder gleich:
If blatt.Name = BlattName Then Exit Sub
Mit Exit Sub verlässt Du einfach die Prozedur, wenn es das Blatt schon gibt
Es macht ja keinen Sinn z.B. noch 800 Blätter nach deren Namen zu prüfen, wenn
bekannt ist das es den Blattnamen schon gibt.
Verstehst Du was ich meine?
Gruß Matthias
Anzeige
AW: Option Explicit
24.09.2016 16:40:02
Andreas
Ja Matthias. hab es so eingearbeitet- Richtig es kann ja sofort die Schleife beendet werden- geht ja schneller und es ist auch nicht notwendig. Aber es fehlt noch der Kopiervorgang - etwa mit Sheets.Copy und die Aktivation der Tabelle1 danach.
Grüße Andreas D.
AW: Option Explicit
24.09.2016 16:46:25
Andreas
Hallo Matthias- das geht am besten-
Tabelle1.Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "Orginalkopie"
Tabelle1.Activate
Hast Recht.-
Danke für die Tipps
Grüße Andreas D.
Danke für Deine Rückmeldung ... owT
24.09.2016 16:48:12
Matthias
schau mal mein Beitrag bei 16:23 owT
24.09.2016 16:47:15
Matthias

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige