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

Makro bockt

Makro bockt
09.05.2006 19:30:20
udo
Der u. a. Code öffnet mir die Datei 28.xls und kopiert mir die Spalte 62 von einem anderen Datenblatt dort in die nächst freie. Soweit so gut. Wenn der das gemacht hat, soll die Spalte 62 in meinem Datenblatt, hier Datenblatt24.csv, gelöscht werden.
Deswegen hab ich die folgenden Befehle hinzugefügt.
Columns("bj:bj").Select
Selection.Delete
Vermutlich ist die Position der Befehle falsch ? Weil nach ausführen des Makros ist die Spalte 62 immer noch da. Was hab ich da falsch gemacht ?
Vielen Dank für Hilfe

Sub Spalte_kopieren_db24()
Dim objWB As Workbook
Dim strFile As String
strFile = "L:\Daten\28.xls"
On Error Resume Next
Set objWB = Workbooks("28.xls")
If objWB Is Nothing Then
Set objWB = Workbooks.Open(strFile)
End If
Err.Clear
On Error GoTo 0
Workbooks("db24.csv").Sheets(1).Cells(1, 62).EntireColumn.Copy
With objWB.Sheets(1)
If .Range("A1") = "" Then
.Range("A1").PasteSpecial Paste:=xlPasteAll
Else
.Range("IV1").End(xlToLeft).Offset(0, 1).EntireColumn.PasteSpecial Paste:=xlPasteAll
Columns("bj:bj").Select ' von Udo eingefügt
Selection.Delete         ' von Udo eingefügt
End If
End With
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro bockt
09.05.2006 19:58:33
Erich
Hallo Udo,
ich vermute, dass die Spalte nicht nur dann gelöscht werden soll, wenn im Zielblatt A1 nicht leer ist. Dann sollte das Delete nicht zwischen Else und End If, sondern hinter dem End If stehen. Select wird dabei nicht gebraucht.
Columns("bj:bj") bezeichnet die Spalte BJ im (zufällig) gerade aktiven Tabellenblatt. Dort willst du aber gar nicht löschen, sondern im Quellblatt. Da das Quellblatt zweimal gebraucht wird (für Copy und Delete), habe ich dafür ein Worksheet-Objekt deklariert.
So sollte es funzen:
Sub Spalte_kopieren_db24()
Dim objWB As Workbook, wsQuelle As Worksheet
Dim strFile As String
strFile = "L:\Daten\28.xls"
Set wsQuelle = Workbooks("db24.csv").Sheets(1)
On Error Resume Next
Set objWB = Workbooks("28.xls")
If objWB Is Nothing Then
Set objWB = Workbooks.Open(strFile)
End If
Err.Clear
On Error GoTo 0
wsQuelle.Cells(1, 62).EntireColumn.Copy
With objWB.Sheets(1)
If .Range("A1") = "" Then
.Range("A1").PasteSpecial Paste:=xlPasteAll
Else
.Range("IV1").End(xlToLeft).Offset(0, 1).EntireColumn.PasteSpecial Paste:=xlPasteAll
End If
End With
wsQuelle.Columns("bj:bj").Delete   ' von Udo eingefügt
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Makro bockt
09.05.2006 20:06:46
Franz
Hallo Udo,
mit folgender Anpassung sollte es funktionieren

Sub Spalte_kopieren_db24()
Dim objWB As Workbook
Dim strFile As String
strFile = "L:\Daten\28.xls"
On Error Resume Next
Set objWB = Workbooks("28.xls")
If objWB Is Nothing Then
Set objWB = Workbooks.Open(strFile)
End If
Err.Clear
On Error GoTo 0
Workbooks("db24.csv").Sheets(1).Cells(1, 62).EntireColumn.Copy
With objWB.Sheets(1)
If .Range("A1") = "" Then
.Range("A1").PasteSpecial Paste:=xlPasteAll
Else
.Range("IV1").End(xlToLeft).Offset(0, 1).EntireColumn.PasteSpecial Paste:=xlPasteAll
Workbooks("db24.csv").Sheets(1).Columns("BJ").Delete 'geändert Franz
End If
End With
End Sub

Statt "BJ" kannst du in der geänderten Zeile auch 62 verwenden.
Gruß
Franz
Anzeige
AW: Makro bockt
09.05.2006 20:19:47
udo
Hallo Erich, hallo Franz !
vielen Dank Euch beiden. Ich hab den Code genommen , wo db24 nur zweimal auftaucht, weil ich bis 33 die Datenblätter immer von Hand ändern muss. Jedenfalls funktioniert jetzt alles.
Ich find das total deprimierend, krieg ich noch nicht mal alleine hin, daß der mir eine Spalte löscht. Traurig, traurig.
Vielleicht sollte ich auf meine alten Tage doch mal ne Ausbilung zum MTA machen :-)
LG Udo
Keine Frage mehr, dann wohl
10.05.2006 08:02:20
Geschlossen
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige