Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1852to1856
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
Ganze Spalten kopieren mit InputBox
20.10.2021 11:35:26
Gary
Hallo zusammen,
ich habe schon viele Einträge gesucht und gelesen, aber noch nichts passendes gefunden.
Normalerweise zeichne ich meine Makro´s auf, aber in diesem Fall bin ich noch nicht weit genug mit VBA´s.
Ich möchte eine ganze Spalte (z.b. Spalte A) einer Excel-Tabelle in eine andere Excel-Tabelle (anderes Laufwerk), gleiche Spalte kopieren.
In Spalte C stehen Werte für Januar, diese sollen in eine andere Tabelle (gleiche Spalte C) übertragen werden in den Januar.
In eine InputBox möchte ich den Monat (Januar) eingeben, und das Marko soll erkennen, das Januar die Spalte C bedeutet, diese kopiert und in die gleiche Spalte in einer anderen Tabelle einfügen.
Wenn ich also März in die InputBox eingebe, soll die ganze Spalte E kopiert und in der anderen Tabelle in Spalte E eingefügt werden. usw.
Hier meine Aufzeichnung:
In diesem Fall ist der Januar C4, Februar D4, März E4 ...... Dezember N4

Sub Spalte_kopieren()
' Spalte_kopieren Makro
Windows("Strom_Mappe_1.xlsx").Activate
Columns("C:C").Select
Selection.Copy
Windows("Strom_Mappe_2.xlsx").Activate
Columns("C:C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Vielleicht habt Ihr ja eine Idee, wie ich das umsetzten kann.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ganze Spalten kopieren mit InputBox
20.10.2021 12:20:12
{Boris}
Hi,
ich würde das mit einem kleinen Userform machen.
Erstelle ein Userform mit dem Namen Userform1 sowie
1 Combobox - Name: ComboBox1
2 Commandbuttons - Namen: CommandButton1 (führt die Aktion aus) und CommandButton2 (steht für Abbrechen)
Dazu diesen Code ist das Modul des Userforms:

Private Sub UserForm_Initialize()
Dim x As Long
For x = 1 To 12
Me.ComboBox1.AddItem Format(DateSerial(2021, x, 1), "MMMM")
Next x
End Sub
Private Sub CommandButton1_Click()
Dim x As Long
x = Me.ComboBox1.ListIndex + 1
If x > 0 Then
Columns(x + 2).Copy Workbooks("Strom_Mappe_1.xlsx").Worksheets(1).Columns(x + 2)
End If
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
VG, Boris
Anzeige
Kleine Korrektur
20.10.2021 12:21:54
{Boris}
Diese Zeile bitte wie folgt ändern:
Columns(x + 2).Copy Workbooks("Strom_Mappe_2.xlsx").Worksheets(1).Columns(x + 2)
VG, Boris
AW: Kleine Korrektur
20.10.2021 13:04:25
Gary
Beim durchlaufen des Makro´s zeigt er mir den Fehler:
Fehler beim Kompilieren:
Unzulässige Verwendung des Schlüsselworts Me

Private Sub CommandButton2_Click()
Unload Me
End Sub
Was heißt das?
AW: Kleine Korrektur
20.10.2021 13:16:43
{Boris}
Hi,
hast Du das Userform erstellt? Wenn ja: Doppelklick auf das Userform im VBA-Editor und den Code in das nun geöffnete Modul des Forms kopieren.
Da ich die Datei nun schon mal habe...
20.10.2021 17:50:24
{Boris}
Hi,
...und Du möglicherweise noch nicht wirklich mit Userforms vertraut bist, lad ich sie hier mal hoch.
https://www.herber.de/bbs/user/148710.xlsm
Der Code ist noch ein klein wenig ausgeschmückt / erweitert. Den Namen der Zieldatei gibst Du direkt im Code vor - dafür ist diese Codezeile:

Const STR_ZIELMAPPENNAME As String = "Strom_Mappe_2.xlsx" 'der exakte Name der Zieldatei
Teste mal.

Private Sub UserForm_Initialize()
Dim x As Long
For x = 1 To 12
Me.ComboBox1.AddItem Format(DateSerial(2021, x, 1), "MMMM")
Next x
End Sub
Private Sub CommandButton1_Click()
Dim x As Long, rngActiveCell As Range
Const STR_ZIELMAPPENNAME As String = "Strom_Mappe_2.xlsx" 'der exakte Name der Zieldatei
On Error GoTo ERR_HANDLER
Set rngActiveCell = ActiveCell
x = Me.ComboBox1.ListIndex + 1
If x > 0 Then
Columns(x + 2).Copy Workbooks(STR_ZIELMAPPENNAME).Worksheets(1).Columns(x + 2)
End If
rngActiveCell.Select 'damit nicht die ganze Spalte selektiert bleibt
MsgBox "Kopiervorgang für die Daten aus " & Me.ComboBox1.Value & " erfolgreich erledigt.", vbInformation, "Gebe bekannt..."
Exit Sub
ERR_HANDLER:
MsgBox "Irgendwas klappt nicht. Ist die Zielmappe geöffnet? Heißt sie auch exakt " & STR_ZIELMAPPENNAME & "?", vbOK + vbCritical, "Fehlerhinweis"
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
VG, Boris
Anzeige
AW: Da ich die Datei nun schon mal habe...
21.10.2021 08:55:26
Gary
Das hat schonmal ganz gut geklappt.
Danke.
Ja, mit Userform kenn ich mich noch nicht ganz aus. Werde mich aber damit mal beschäftigen.
Die Zieldatei muss geöffnet sein um die Werte rüber zu schieben?
LG Gary
AW: Da ich die Datei nun schon mal habe...
21.10.2021 09:03:21
{Boris}
Hi,

Die Zieldatei muss geöffnet sein um die Werte rüber zu schieben?
Ja - in geschlossene Dateien kann man nichts schreiben. Man kann die Zielmappe - wenn man will - auch "im Hintergrund" öffnen. Dafür gibt es die GetObject-Funktion.
VG, Boris

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige