Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
668to672
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
668to672
668to672
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem mit Makro

Problem mit Makro
16.09.2005 12:17:50
Ralf
Hallo,
ich habe folgendes Problem: ich füge gerade zu einer existierenden Tabelle Datenbestände hinzu. Es existiert ein Makro, dass bestimmte Datensätze dieser Tabelle entnehmen (bzw. kopieren) und in eine andere Tabelle einfügen soll. Diese Funktion erfüllt das Makro auch weitestgehen, außer - das meine neuen Datenbeständen (die einfach nur unten an stehen) ignoriert werden. Die Ranges im Makro habe ich eigentlich soweit verändert, dass sie mit übernommen werden müssten.
Nun das Makro:

Sub GenerateOrderList()
Sheets("Product Portfolio").Select
Columns("A:S").Select
Selection.Copy
Sheets("Order List").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Sheets("Product Portfolio").Select
Cells.Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Order List").Select
Cells.Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("G7:I7").Select
Selection.ClearContents
Range("D7").Select
hoehe = 0
Columns("R:R").Select
Selection.ColumnWidth = 20
' Enter here size of list (number of lines)
' Fields in column R must be interger (no strings)
ActiveWindow.View = xlNormalView
ActiveWindow.Zoom = 60
n = 430
Do While (n > 3)
n = n - 1
aktuelles_Feld = "R" + StrConv(n, 1)
Range(aktuelles_Feld).Select
hoehe = CInt(ActiveCell.FormulaR1C1)
'  If hoehe < 0.01 Then Selection.EntireRow.Delete
If hoehe < 0.01 Then Selection.RowHeight = 0
Loop
ActiveSheet.PageSetup.PrintArea = ""
ActiveWindow.DisplayZeros = False
Columns("J:W").Select
Selection.ColumnWidth = 0
Sheets("Product Portfolio").Select
Range("A1").Select
Sheets("Order List").Select
Range("A1:I430").Select
Range("A420").Activate
ActiveSheet.PageSetup.PrintArea = "$A$1:$I$430"
Range("A3").Select
ActiveWindow.View = xlPageBreakPreview
ActiveWindow.Zoom = 60
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Makro
16.09.2005 12:46:07
joko0803
Hallo Ralf,
sorry, beim Copy - Paste liegt hier eher kein Fehler vor.
Wo genau tritt der Fehler auf?
Lass doch mal das Makro aus VBA heraus im Schritt-Modus (F8) laufen.
Gruß
John
AW: Problem mit Makro
16.09.2005 13:29:30
Ralf
Also beim Makro selbst liegt soweit kein ernsthaftes Problem vor. Es wird ohne Fehlermeldung ausgeführt.
Das Problem liegt am Ergebnis. Die Daten werden "größtenteils" in die neue Tabelle übernommen. Allerdings nicht die Datensätze, die ich zusätzlich in der Ursprungstabelle unten eingefügt habe. Das ist das Problem. Und ich weiß nicht, warum dass so ist, denn die Ranges im Makro zur Datenübernahme (A1:I430) habe ich entsprechend angepasst.
Anzeige
AW: Problem mit Makro
16.09.2005 12:57:33
Uduuh
Hallo,
damit habe ich auch Probleme. Da steht soviel Unsinn drin, dass ich nicht ganz kapiere, was du eigentlich willst.
Der Hammer ist das hier:
Do While (n &gt 3)
n = n - 1
aktuelles_Feld = "R" + StrConv(n, 1)
Range(aktuelles_Feld).Select
hoehe = CInt(ActiveCell.FormulaR1C1)
' If hoehe &lt 0.01 Then Selection.EntireRow.Delete
If hoehe &lt 0.01 Then Selection.RowHeight = 0
Loop
Du bastelst dir einen String und wandelst dabei eine Zahl (n) in einen Großbuchstaben um StrConv(n,1)?
Anschließend selectest du die Zelle und wandelst die Formel (!!!) in eine Ganzzahl um.
Diese Ganzzahl prüfst du auf kleiner 0,01 also keine Ganzzahl.
Dazu noch die Unzahl an Selects.
Verstehst du den Code überhaupt? Überdenke dein Level.
Gruß aus’m Pott
Udo

Anzeige
AW: Problem mit Makro
16.09.2005 13:33:29
Ralf
Tja, die Sache ist die, dass ich den Unsinn auch nicht ganz nachvollziehen kann. Ich habe es auch nicht erstellt, ich solls nur richten.
AW: Problem mit Makro
16.09.2005 17:20:57
joko0803
Hallo,
hier noch mal eine überarbeitete Version.
M.E. müssen alle Zeilen kopiert werden. So weit ist dein Makro ok.
Wenn Werte nicht erscheinen kann das eigentlich nur daran liegen, dass die Zeilen im weiteren Verlauf ausgeblendet werden.
Die Ermittlung der lezten Zeile ist in dieser Version automatisiert.
Alle nicht benötigten Einträge sind auf Kommentar gesetzt "'".
Gruß
John

Sub GenerateOrderList()
Sheets("Product Portfolio").Select
Columns("A:S").Copy
'   Selection.Copy
Sheets("Order List").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlValues
Selection.PasteSpecial Paste:=xlFormats
'    Sheets("Product Portfolio").Select
'    Cells.Select
'    Application.CutCopyMode = False
'   Selection.Copy
'   Sheets("Order List").Select
'   Cells.Select
'   Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
'       False, Transpose:=False
Application.CutCopyMode = False
'  warum muss du aus diesem Bereich die Daten löschen?
Range("G7:I7").ClearContents
'    Range("D7").Select
hoehe = 0
Columns("R:R").ColumnWidth = 20
' Enter here size of list (number of lines)
' Fields in column R must be interger (no strings)
ActiveWindow.View = xlNormalView
ActiveWindow.Zoom = 60
'    n = 430
'   hier wird die anzahl der Zeilen gesetzt
n = ActiveCell.SpecialCells(xlLastCell).Row + 1
letzteZeile = n - 1
Do While (n > 3)
n = n - 1
aktuelles_Feld = "R" + StrConv(n, 1)
Range(aktuelles_Feld).Select
'        hoehe = CInt(ActiveCell.FormulaR1C1)
'Ist die Zeilenhöhe vom Wert des Inhalts abhängig, dann so ...
hoehe = ActiveCell
'  If hoehe < 0.01 Then Selection.EntireRow.Delete
'      If hoehe < 0.01 Then Selection.RowHeight = 0
If hoehe < 0.01 Then Selection.EntireRow.Visible = False
Loop
ActiveSheet.PageSetup.PrintArea = ""
ActiveWindow.DisplayZeros = False
Columns("J:W").Select
Selection.ColumnWidth = 0
Sheets("Product Portfolio").Select
Range("A1").Select
Sheets("Order List").Select
'    Range("A1:I430").Select
Range("A1:I" & letzteZeile).Select
'    Range("A420").Activate
ActiveSheet.PageSetup.PrintArea = "$A$1:$I$" & letzteZeile
Range("A3").Select
ActiveWindow.View = xlPageBreakPreview
ActiveWindow.Zoom = 60
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige