Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
856to860
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
856to860
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehler in Makro - Tut sich nichts

Fehler in Makro - Tut sich nichts
24.03.2007 12:02:00
Mister
Hallo,
kann mir bitte jemand sagen warum mein Makro nicht funktioniert. Hab's aus dem Forum und verstehe nicht warum nichts passiert. Aus drei Tabellen werden eine. Diese Tabelle soll später den Inhalt eines ComboBox in einer UF bilden.

Sub SuchListe()
Dim lEnd As Long
Dim Zeile1 As Long
Dim Zeile2 As Long
Dim Zeile3 As Long
Dim x As Integer
Dim y As Integer
Dim z As Integer
With Application
.ScreenUpdating = False
End With
UserForm3.Label2.Caption = UserForm3.Label2.Caption & "n"
UserForm3.Repaint
With Sheets("Zugangszellen")
x = Cells(Rows.Count, 3).End(xlUp).Select
For Zeile1 = 6 To x
Sheets("Schnellsuche").Cells(Zeile - 5, 1) = .Cells(Zeile, "C") & IIf(Not IsEmpty(.Cells(Zeile,  _
"D")), ", " _
& .Cells(Zeile, "D"), "")
Sheets("Schnellsuche").Cells(Zeile - 5, 2) = .Cells(Zeile, "E")
Sheets("Schnellsuche").Cells(Zeile - 5, 3) = .Cells(Zeile, "F")
Sheets("Schnellsuche").Cells(Zeile - 5, 4) = .Cells(Zeile, "G")
Sheets("Schnellsuche").Cells(Zeile - 5, 5) = .Cells(Zeile, "H")
Sheets("Schnellsuche").Cells(Zeile - 5, 6) = .Cells(Zeile, "I")
Sheets("Schnellsuche").Cells(Zeile - 5, 7) = .Cells(Zeile, "J")
Next
End With
UserForm3.Label2.Caption = UserForm3.Label2.Caption & "n"
UserForm3.Repaint
With Sheets("S-Belegung")
y = Cells(Rows.Count, 3).End(xlUp).Select
For Zeile = 6 To y
Sheets("Schnellsuche").Cells(551 + (Zeile - 5), 1) = .Cells(Zeile, "C") & IIf(Not IsEmpty(. _
Cells(Zeile, "D")), ", " _
& .Cells(Zeile, "D"), "")
Sheets("Schnellsuche").Cells(551 + (Zeile - 5), 2) = .Cells(Zeile, "E")
Sheets("Schnellsuche").Cells(551 + (Zeile - 5), 3) = .Cells(Zeile, "F")
Sheets("Schnellsuche").Cells(551 + (Zeile - 5), 4) = .Cells(Zeile, "G")
Sheets("Schnellsuche").Cells(551 + (Zeile - 5), 5) = .Cells(Zeile, "H")
Sheets("Schnellsuche").Cells(551 + (Zeile - 5), 6) = .Cells(Zeile, "I")
Sheets("Schnellsuche").Cells(551 + (Zeile - 5), 7) = .Cells(Zeile, "J")
Next
End With
UserForm3.Label2.Caption = UserForm3.Label2.Caption & "n"
UserForm3.Repaint
With Sheets("B-Zellen")
z = Cells(Rows.Count, 3).End(xlUp).Select
For Zeile = 6 To z
Sheets("Schnellsuche").Cells(1101 + (Zeile - 5), 1) = .Cells(Zeile, "C") & IIf(Not IsEmpty(. _
Cells(Zeile, "D")), ", " _
& .Cells(Zeile, "D"), "")
Sheets("Schnellsuche").Cells(1101 + (Zeile - 5), 2) = .Cells(Zeile, "E")
Sheets("Schnellsuche").Cells(1101 + (Zeile - 5), 3) = .Cells(Zeile, "F")
Sheets("Schnellsuche").Cells(1101 + (Zeile - 5), 4) = .Cells(Zeile, "G")
Sheets("Schnellsuche").Cells(1101 + (Zeile - 5), 5) = .Cells(Zeile, "H")
Sheets("Schnellsuche").Cells(1101 + (Zeile - 5), 6) = .Cells(Zeile, "J")
Sheets("Schnellsuche").Cells(1101 + (Zeile - 5), 7) = .Cells(Zeile, "K")
Next
End With
UserForm3.Label2.Caption = UserForm3.Label2.Caption & "n"
UserForm3.Repaint
Sheets("Schnellsuche").Activate
Columns("A:G").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("C1") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortTextAsNumbers
End Sub

Danke für eure Hilfe
Martin

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

Betreff
Datum
Anwender
Anzeige
Korrektur
24.03.2007 12:08:02
Mister
For Zeile = 6 to y sollte heissen For Zeile2 = 6 to y
For Zeile = 6 to z sollte heissen For Zeile3 = 6 to z
aber es funktioniert trotzdem nicht!
AW: Korrektur
24.03.2007 13:21:22
Peter
Hallo Martin,
dir fehlt der Punkt vor: .Cells(Rows.Count, 3).End(xlUp).Row und auch in den anderen Stellen.
Deine Variable Zeile muss wohl noch an mehreren Stellen auf Zeile1, Zeile2, Zeile3 geändert werden.
Gruß Peter
AW: Korrektur
24.03.2007 15:36:27
Mister
Hallo Peter,
danke für deine Antwort. Ich werde es morgen gleich ausprobieren wenn ich an meinem Arbeits-PC sitze
Gruß
Martin
AW: Korrektur
24.03.2007 20:23:00
Peter
Hallo Martin,
hier dein angepasstes (nicht sehr optimales) Makro.
'
' Aus drei Tabellen werden eine. Diese Tabelle soll später den Inhalt eines ComboBox in einer UF bilden.
'

Sub SuchListe()
Dim lEnd As Long
Dim Zeile1 As Long
Dim Zeile2 As Long
Dim Zeile3 As Long
Dim x As Integer
Dim y As Integer
Dim z As Integer
With Application
.ScreenUpdating = False
End With
UserForm3.Label2.Caption = UserForm3.Label2.Caption & "n"
UserForm3.Repaint
With Sheets("Zugangszellen")
x = .Cells(Rows.Count, 3).End(xlUp).Row
For Zeile1 = 6 To x
Sheets("Schnellsuche").Cells(Zeile1 - 5, 1) = .Cells(Zeile1, "C") & IIf(Not IsEmpty(.Cells( _
Zeile1, _
"D")), ", " _
& .Cells(Zeile1, "D"), "")
Sheets("Schnellsuche").Cells(Zeile1 - 5, 2) = .Cells(Zeile1, "E")
Sheets("Schnellsuche").Cells(Zeile1 - 5, 3) = .Cells(Zeile1, "F")
Sheets("Schnellsuche").Cells(Zeile1 - 5, 4) = .Cells(Zeile1, "G")
Sheets("Schnellsuche").Cells(Zeile1 - 5, 5) = .Cells(Zeile1, "H")
Sheets("Schnellsuche").Cells(Zeile1 - 5, 6) = .Cells(Zeile1, "I")
Sheets("Schnellsuche").Cells(Zeile1 - 5, 7) = .Cells(Zeile1, "J")
Next
End With
UserForm3.Label2.Caption = UserForm3.Label2.Caption & "n"
UserForm3.Repaint
With Sheets("S-Belegung")
y = .Cells(Rows.Count, 3).End(xlUp).Row
For Zeile2 = 6 To y
Sheets("Schnellsuche").Cells(551 + (Zeile2 - 5), 1) = .Cells(Zeile2, "C") & IIf(Not IsEmpty(. _
Cells(Zeile2, "D")), ", " _
& .Cells(Zeile2, "D"), "")
Sheets("Schnellsuche").Cells(551 + (Zeile2 - 5), 2) = .Cells(Zeile2, "E")
Sheets("Schnellsuche").Cells(551 + (Zeile2 - 5), 3) = .Cells(Zeile2, "F")
Sheets("Schnellsuche").Cells(551 + (Zeile2 - 5), 4) = .Cells(Zeile2, "G")
Sheets("Schnellsuche").Cells(551 + (Zeile2 - 5), 5) = .Cells(Zeile2, "H")
Sheets("Schnellsuche").Cells(551 + (Zeile2 - 5), 6) = .Cells(Zeile2, "I")
Sheets("Schnellsuche").Cells(551 + (Zeile2 - 5), 7) = .Cells(Zeile2, "J")
Next
End With
UserForm3.Label2.Caption = UserForm3.Label2.Caption & "n"
UserForm3.Repaint
With Sheets("B-Zellen")
z = .Cells(Rows.Count, 3).End(xlUp).Row
For Zeile3 = 6 To z
Sheets("Schnellsuche").Cells(1101 + (Zeile3 - 5), 1) = .Cells(Zeile3, "C") & IIf(Not IsEmpty(.  _
_
Cells(Zeile3, "D")), ", " _
& .Cells(Zeile3, "D"), "")
Sheets("Schnellsuche").Cells(1101 + (Zeile3 - 5), 2) = .Cells(Zeile3, "E")
Sheets("Schnellsuche").Cells(1101 + (Zeile3 - 5), 3) = .Cells(Zeile3, "F")
Sheets("Schnellsuche").Cells(1101 + (Zeile3 - 5), 4) = .Cells(Zeile3, "G")
Sheets("Schnellsuche").Cells(1101 + (Zeile3 - 5), 5) = .Cells(Zeile3, "H")
Sheets("Schnellsuche").Cells(1101 + (Zeile3 - 5), 6) = .Cells(Zeile3, "J")
Sheets("Schnellsuche").Cells(1101 + (Zeile3 - 5), 7) = .Cells(Zeile3, "K")
Next
End With
UserForm3.Label2.Caption = UserForm3.Label2.Caption & "n"
UserForm3.Repaint
Sheets("Schnellsuche").Activate
Columns("A:G").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("C1") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom  ', DataOption1:=xlSortNormal, DataOption2 _
:=xlSortTextAsNumbers
End Sub

Gruß Peter
Anzeige
AW: Korrektur
26.03.2007 08:47:00
Mister
Hallo Peter,
Funktioniert prima! Wie könnte man das Makro optimieren?
Gruß
Martin
AW: Korrektur
26.03.2007 20:54:16
Peter
Hallo Martin,
ich hätte es so versucht:


Option Explicit
Public Sub Zusammenfuehren()
Dim WkSh_Q       As Worksheet
Dim WkSh_Z       As Worksheet
Dim aBlaetter()  As Variant
Dim iIndex       As Integer
Dim lZeile_Q     As Long
Dim lZeile_Z     As Long
Dim lLetzte      As Long
   Application.ScreenUpdating = False
   Set WkSh_Z = Worksheets("Schnellsuche")
   aBlaetter = Array("", "Zugangszellen", "S-Belegung", "B-Zellen")
   lZeile_Z = 1   ' Beginnzeile im Blatt "Schnellsuche" - ggf. anpassen !!!
   For iIndex = 1 To UBound(aBlaetter)
      Set WkSh_Q = Worksheets(aBlaetter(iIndex))
      lLetzte = WkSh_Q.Range("C65536").End(xlUp).Row
      For lZeile_Q = 3 To lLetzte
         WkSh_Z.Cells(lZeile_Z, 2).Value = WkSh_Q.Cells(lZeile_Q, 5).Value
         WkSh_Z.Cells(lZeile_Z, 3).Value = WkSh_Q.Cells(lZeile_Q, 6).Value
         WkSh_Z.Cells(lZeile_Z, 4).Value = WkSh_Q.Cells(lZeile_Q, 7).Value
         WkSh_Z.Cells(lZeile_Z, 5).Value = WkSh_Q.Cells(lZeile_Q, 8).Value
         WkSh_Z.Cells(lZeile_Z, 6).Value = WkSh_Q.Cells(lZeile_Q, 9).Value
         WkSh_Z.Cells(lZeile_Z, 7).Value = WkSh_Q.Cells(lZeile_Q, 10).Value
         lZeile_Z = lZeile_Z + 1
      Next lZeile_Q
   Next iIndex
   UserForm3.Label2.Caption = UserForm3.Label2.Caption & "n"
   UserForm3.Repaint
   Worksheets("Schnellsuche").Activate
   Columns("A:G").Sort _
      Key1:=Range("A1"), Order1:=xlAscending, _
      Key2:=Range("C1"), Order2:=xlAscending, _
      Header:=xlNo, OrderCustom:=1, _
      MatchCase:=False, Orientation:=xlTopToBottom
      ', DataOption1:=xlSortNormal, _
      DataOption2:=xlSortTextAsNumbers

End Sub


Gruß Peter
Anzeige
AW: Korrektur
27.03.2007 11:12:00
Mister
Danke Peter,
das ist natürlich ganz was anderes! Ich werde es bei Gelegenheit ausprobieren
Gruß
Martin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige