Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1112to1116
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 code funktioniert unter 2003 nicht korekt

VBA code funktioniert unter 2003 nicht korekt
alex
Hi
folgender code funktioniert an der stelle activesheet.paste unter 2003 nicht (unter 2007 ohne probleme. ich habe keine ahnung wieso da der befehl der selbe ist den excel 2003 benutzt.
Sub Mängelliste()
' Mängelliste Makro
On Error Resume Next    'überspringt fehler
Workbooks("wartung.xls").Activate
strPath = ThisWorkbook.Path
ChDrive Left(strPath, 2)
ChDir strPath
If Err  0 Then                    'schleife mit bedingung (fehler wert ungleich 0) und  _
folge
ThisWorkbook.Sheets("KT").Range("c11").Copy
Workbooks.Open ("../../wartung.xls")   'öffnet im darüber liegenden verzeichnis wartung. _
_
xls
Sheets("Mängelliste").Select        'selektiert das arbeitsblatt mängelliste
Range("a" & Range("A65536").End(xlUp).Row + 1).Select
ActiveSheet.Paste  'AN DER STELLE BEKOMME ICH EINEN FEHLER
With Selection.Interior
.Pattern = xlNone   'nimmt die hintergrundfarbe der kopierten zelle raus
End With
ThisWorkbook.Sheets("KT").Range("E3").Copy
Range("B" & Range("B65536").End(xlUp).Row + 1).Select
ActiveSheet.Paste   'AN DER STELLE BEKOMME ICH EINEN FEHLER
With Selection.Interior
.Pattern = xlNone   'nimmt die hintergrundfarbe der kopierten zelle raus
End With
With Selection.Font
.Name = "Arial"
.Size = 10
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Err.Clear              'setzt den fehler wert auf 0
Else
ThisWorkbook.Sheets("KT").Range("c11").Copy
Windows("Wartung.xls").Activate
Sheets("Mängelliste").Select
Range("a" & Range("A65536").End(xlUp).Row + 1).Select
ActiveSheet.Paste   'AN DER STELLE BEKOMME ICH EINEN FEHLER
With Selection.Interior
.Pattern = xlNone   'nimmt die hintergrundfarbe der kopierten zelle raus
End With
ThisWorkbook.Sheets("KT").Range("E3").Copy
Range("B" & Range("B65536").End(xlUp).Row + 1).Select
ActiveSheet.Paste   'AN DER STELLE BEKOMME ICH EINEN FEHLER
With Selection.Interior
.Pattern = xlNone   'nimmt die hintergrundfarbe der kopierten zelle raus
End With
With Selection.Font
.Name = "Arial"
.Size = 10
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End If
Exit Sub
End Sub

AW: VBA code funktioniert unter 2003 nicht korekt
25.10.2009 19:10:33
Hajo_Zi
Hallo Alex,
mache das Open vor dem Copy.

AW: VBA code funktioniert unter 2003 nicht korekt
25.10.2009 22:05:50
alex
also ich habe ThisWorkbook.Sheets("KT").Range("c11").Copy und Workbooks.Open ("../../wartung.xls")
jetzt vertauscht....
ich bekomme aber den selben fehler.
außerdem bekomme ich manchmal bei "Range("B" & Range("B65536").End(xlUp).Row + 1).Select"
den fehler außerhalb des gültigen bereiches....
also entweder in der zeile oder in der zeile da drunter gibt es immer wieder einen fehler
AW: VBA code funktioniert unter 2003 nicht korekt
25.10.2009 22:12:05
alex
damit die funktion klar ist mal ne beschreibung was das makro eigentlich machen soll.
es soll aus arbeitsmappe 1 zelle c11 in arbeitsmappe 2 in spalte a kopieren und zwar in die nächste freie zelle, danach soll aus mappe 1 zelle f3 in arbeitmappe 2 spalte b in die nächste freie zelle kopiert werden.
unter 2007 läuft das makro einwandfrei. aber unter 2003 kopiert er gerade mal c11 danach ist schluss.
Anzeige
AW: VBA code funktioniert unter 2003 nicht korekt
26.10.2009 07:11:09
Hajo_Zi
Hallo Alex,
ich hätte es vielöleicht so geschrieben.
Option Explicit
Sub Mängelliste()
' Mängelliste Makro
Dim Loletzte As Long
ChDrive Left(ThisWorkbook.Path, 2)
ChDir ThisWorkbook.Path
Workbooks.Open ("../../wartung.xls")   'öffnet im darüber liegenden verzeichnis wartung.xls
With Sheets("Mängelliste")
Loletzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
ThisWorkbook.Sheets("KT").Range("c11").Copy
With .Range("A" & Loletzte + 1)
.Paste  'AN DER STELLE BEKOMME ICH EINEN FEHLER
.Interior.Pattern = xlNone   'nimmt die hintergrundfarbe der kopierten zelle raus
End With
Loletzte = IIf(IsEmpty(.Cells(.Rows.Count, 2)), .Cells(.Rows.Count, 2).End(xlUp).Row, . _
Rows.Count)
ThisWorkbook.Sheets("KT").Range("E3").Copy
With .Range("B" & Loletzte + 1)
.Paste   'AN DER STELLE BEKOMME ICH EINEN FEHLER
.Interior.Pattern = xlNone   'nimmt die hintergrundfarbe der kopierten zelle raus
.Font.Name = "Arial"
.Font.Size = 10
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End With
End With
End Sub
Gruß Hajo
Anzeige
.TintAndShade
26.10.2009 11:34:49
Rudi
gibt es in 2003 nicht.
Gruß
Rudi
AW: VBA code funktioniert unter 2003 nicht korekt
26.10.2009 15:23:25
alex
hi hajo
dein code hat an der stelle .paste einen fehler gegeben. allerdings funktioniert er mit specialpaste und damit kann ich mir dann auch den rest von der rahmen formatierung sparen.... habs aber jetzt nur auf 2007 probiert. ich werde gleich mal meinen laptop anschmeißen und schauen obs dort auf 2003 auch geht
AW: VBA code funktioniert unter 2003 nicht korekt
26.10.2009 15:31:07
Hajo_Zi
Hallo Alex,
den Beitrag von Rudi, hast Du beachtet, die Zeilen .TintAndShade = 0 löschen.
Gruß Hajo
AW: VBA code funktioniert unter 2003 nicht korekt
26.10.2009 16:13:55
alex
hab alle zeilen gelöscht die mit der der rahmenformatierung zusammen hängen (hatte das mit dem makro recorder aufgenommen nach dem bei meinem alten code der befehl special.paste einen fehler hervorrief).
dein code funktioniert super auf 2003.
danke dir nochmal für deine hilfe
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige