Anzeige
Archiv - Navigation
988to992
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
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Probleme mit selbstgeschriebenem Makro

Probleme mit selbstgeschriebenem Makro
03.07.2008 15:44:00
Jochen
Hallo,
hab folgende Aufgabenstellung:
Hab ne Exceldatei mit 2 Tabellenblättern Gesamtuebersicht und Handlungsfelder_makro. Aus der gesamtuebersicht sollen nun mittels 2 gesetzten Autofiltern bestimmte Werte eingelesen werden (Zellen D) und dann rüber in Handlungsfelder kopiert werden. Dort müssen sie in ein bestimmtes Muster (Schachbrettartig) einsortiert werden.
Leider wirft Excel nur mal wieder den Laufzeitfehler 1004 aus - damit kann ich leider recht wenig anfangen.
Wäre supernett wenn jemand kurz über den Code rüberschauen könnte und mir vielelicht Hilfestellung gibt, was an dem Code falsch sein könnte.
Die Formate sollten so wie ich das sehe passen (die Array Variant mache ich zum string durch cstring bzw. zuweisung zur Variable rang1).
Danke
Jochen

Sub CommandButton1_Click()
'Autofilter aktivieren
Worksheets("Gesamtuebersicht").Range("A2:T2").Select
Selection.AutoFilter
'Variablen | i= Zählvariable fuer Handlungsfelder | j = Zählvariable fuer Tabelle (alle 4  _
Zeilen neuer Eintrag)
'| X, Y = Variablen für Zelle (z.B. AX -> X=5 => A5) | ar1 = Array fuer Bewegung Zelle (z.B. B5  _
-> C5 ) fuer das pasten der Werte
Dim i As Integer
i = 3
Dim zaehler, zaehler2, zaehler3, zaehler4 As Integer
zaehler = 1
zaehler2 = 3
zaehler3 = 1
zaehler4 = 3
Dim rang1 As String
Dim j As Integer
Dim X, Y As Integer
Dim ar1 As Variant
Dim ar2 As Variant
Dim text, einlesen As String
text = Worksheets("Gesamtuebersicht").Range("A" + i).Value
ar1 = Array("B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", _
"S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB")
ar2 = Array("R", "GÜ", "K")
'Schleife bis alle Handlungsfelder durchlaufen
Do Until text = ""
Application.ScreenUpdating = False
rang1 = "A" & i
Selection.AutoFilter Field:=5, Criteria1:=CStr(Worksheets("Gesamtuebersicht").Range(rang1). _
Value)
'Schleife Region/GÜ/K
For zaehler = 1 To 3
Selection.AutoFilter Field:=4, Criteria1:=CStr(ar2(zaehler))
'Copy & Paste der stehenden Werte
Do Until einlesen = ""
If Rows(i).Hidden = False Then
rang1 = "D" & zaehler2
einlesen = Worksheets("Gesamtuebersicht").Range(rang1).Value
If zaehler = 1 Then
'Zeilenumbruch falls "J" erreicht und noch mehr Punkte
If zaehler3 = 9 Then
zaehler4 = zaehler4 + 1
zaehler3 = 1
End If
rang1 = CStr(ar1(zaehler3)) & zaehler4
Worksheets("Handlungsfelder_makro").Range(rang1).Value = einlesen
End If
If zaehler = 2 Then
'Zeilenumbruch falls "S" erreicht und noch mehr Punkte
If zaehler3 = 18 Then
zaehler4 = zaehler4 + 1
zaehler3 = 9
End If
'rang1 = CStr(ar1(zaehler3)) & zaehler4
Worksheets("Handlungsfelder_makro").Range(rang1).Value = einlesen
End If
If zaehler = 3 Then
'Zeilenumbruch falls "AB" erreicht und noch mehr Punkte
If zaehler3 = 27 Then
zaehler4 = zaehler4 + 1
zaehler3 = 18
End If
'rang1 = CStr(ar1(zaehler3)) & zaehler4
Worksheets("Handlungsfelder_makro").Range(rang1).Value = einlesen
End If
Else
zaehler2 = zaehler2 + 4
End If
zaehler2 = zaehler2 + 4
Loop
Next zaehler
i = i + 2
Loop
'AutoFilter deaktivieren
Selection.AutoFilter Field:=2
Selection.AutoFilter
'Screen wieder aktualisieren
Application.ScreenUpdating = True
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit selbstgeschriebenem Makro
03.07.2008 15:48:41
Reinhard
Hi Jochen,
welche Codezeile wird denn bemängelt?
Gruß
Reinhard

AW: Probleme mit selbstgeschriebenem Makro
03.07.2008 15:49:00
Jochen
Tja das ist das Problem mit dem Laufzeitfehler 1004 -man sieht ehrlich gesagt nicht welche zeile er jetzt meint :(

AW: Probleme mit selbstgeschriebenem Makro
03.07.2008 15:52:44
Reinhard
Hi Jochen,
setz doch mal nen Haltepunkt anfangs des codes, dann Code starten und ab haltepunkt mit F8 weiter...
Gruß
Reinhard

AW: Probleme mit selbstgeschriebenem Makro
03.07.2008 16:02:00
Jochen
argh die Info (das es sowas gibt) hätte ich früher wissen sollen omg ...
Vielen Dank ... werde jetzt erstmal all die Fehler mal raus machen und dann nochmals probieren
Komischerweise sagt er nämlich schon bei
Worksheets("Gesamtuebersicht").Range("A2:T2").Select
was wegen dem laufzeitfehler

Anzeige
AW: Probleme mit selbstgeschriebenem Makro
03.07.2008 15:50:00
Jochen
Tja das ist das Problem mit dem Laufzeitfehler 1004 -man sieht ehrlich gesagt nicht welche zeile er jetzt meint :(

AW: Probleme mit selbstgeschriebenem Makro
03.07.2008 16:09:00
Jochen
Ok inzwischen hängt er wohl bei:
was ich glaube zu machen ist: Variant Array zu String umwandeln (also einen Eintrag) und dann nach deisem "String" Filtern
Selection.AutoFilter Field:=4, Criteria1:=CStr(ar2(zaehler))

AW: Probleme mit selbstgeschriebenem Makro
09.07.2008 21:08:42
Björn
Hallo Jochen,
nur so 'ne Idee: Weise doch mal deine Formel einer Variablen zu und setze dann das Filterkriterium gleich der Variablen. Möglicherweise klappt das mit dem Berechnen innerhalb der Filterfunktion nicht.
Viele Grüße
Björn
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige