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

Makro - Ich krigs nicht hin !

Makro - Ich krigs nicht hin !
04.05.2007 23:51:03
Bräuer
Hi
habe nur ein kleines Problem
habe mir die Datei
https://www.herber.de/bbs/user/42065.xls
runtergeladen und etwas angepasst
aber ich bekomme einfach nicht das Startmakro heraus
was ich meine " klick in eine beliebige zelle" das funzt nur,wenn alle Verbundenen Zeilen die selbe größe haben
und das haben Sie natütlich nicht!
kann mir jemand einen Tipp geben?
Wie ich die Userform mit einem Commandb.von einer ersten Userform aus öffnen kann
Gruß Thomas

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro - Ich krigs nicht hin !
05.05.2007 00:08:00
Hubert
hi,
verbundene Zellen sind der natürliche Feind der VBA-Programmierung!
weglassen!
mfg Hubert

AW: Makro - Ich krigs nicht hin !
05.05.2007 00:20:58
Bräuer
Hi
weglassen geht nicht !!!!!
ich bräuchte einfach nur einen " Knopf" der die UF aufmacht

AW: Makro - Ich krigs nicht hin !
05.05.2007 00:33:48
Lenhard
Moin Thomas!
Bau Dir doch einfach einen CommandButton auf das Arbeitsblatt, rechte Maustaste drauf und dann folgenden Code einsetzen:

Private Sub CommandButton1_Click()
Load UserForm1
UserForm1.StartUpPosition = 2
UserForm1.Show
End Sub


Das müßte gehen und doch auch Deine Frage beantworten. Oder?!
Gruß aus dem hohen Norden
Lenhard

Anzeige
AW: Makro - Ich krigs nicht hin !
05.05.2007 00:46:50
Bräuer
Ne leider nicht
es wird ein Modul geladen
Public piIndex As Integer

Sub Makro1()
' Makro1 Makro
' Makro am 27.04.2007 von userGobi aufgezeichnet
Range("A1:A100").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("B1:B100").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("C1:C100").Select
Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("D1:D100").Select
Selection.Sort Key1:=Range("D1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
u.s.w.


Sub VerlagEintrag()
Dim liZeile As Integer, liSpalte As Integer
With ThisWorkbook.Sheets(2)
For liSpalte = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column
If UserForm1.cmbIndex.Text = UCase(Left(.Cells(1, liSpalte), 1)) Then
UserForm1.cmbVerlag.Clear
For liZeile = 1 To .Cells(Rows.Count, liSpalte).End(xlUp).Row
UserForm1.cmbVerlag.AddItem .Cells(liZeile, liSpalte)
Next
piIndex = liSpalte
Exit Sub
End If
Next
End With
End Sub


und ich bleibe IMMER beim ersten Range Eintrag hängen !
geschrieben hats denke mal der "Oberschlumpf"

Anzeige
Oberschlumpf Makro - Ich krigs nicht hin !
05.05.2007 01:00:45
Bräuer
bitte melde Dich komme mit der Datei nicht zurecht !!!

AW: Oberschlumpf Makro - Ich krigs nicht hin !
05.05.2007 01:40:00
fcs
Hallo Bräuner,
das Problem ist wahrschenlich, dass du das Makro1 startest während Tabelle1 aktiv ist. Da im Makro1 nicht angegeben ist in welcher Tabelle sortiert werden soll gibt es Probleme, weil Excel jetzt versucht in der aktiven Tabelle mit den verbundenen Zellen zu sortieren. Und das funktioniert meistens nicht.
Du muss in deinem Makro1 immer genau angeben, mit welchem Objekt (Tabelle, Userfom etc. ) die angebenen Methoden ausgeführt werden sollen und am besten vermeidest du auch sämliche Select-Befehle. Diese machen in Makroabläufen auch oft nur Kummer und bremsen den Ablauf.
Gruß
Franz
Dann schaut dein Makro1 etwa so aus:

Public piIndex As Integer
Sub Makro1()
' Makro1 Makro
' Makro am 27.04.2007 von userGobi aufgezeichnet
Dim Spalte as Interger
'Sortieren aller Spalten in Tabelle 2
With Worksheets("Tabelle2")
For Spalte = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column
.Columns(Spalte).Sort Key1:=.Cells(1, Spalte), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom , _
DataOption1:=xlSortNormal
Next
End With
'usw.
UserForm1.Show
Unload UserForm1
End Sub


Den Code für den Userform-Button "Hinzufügen" solltets du wie folgt ändern. Di von dir gewählte _ Konstruktion ist reichlich kompliziert und unübersichtlich.


Private Sub cmdHinzu_Click()
Dim liEintrag As Integer, lboNo As Boolean, rngSpalte As Range
For liEintrag = 1 To cmbVerlag.ListCount - 1
If cmbVerlag.Text  cmbVerlag.List(liEintrag) Then
lboNo = True
Else
lboNo = False
Exit For
End If
Next
If lboNo = True Then
lboNo = False
With ThisWorkbook.Sheets(2)
.Cells(.Rows.Count, piIndex).End(xlUp).Offset(1, 0).Value = cmbVerlag.Text
Set rngSpalte = .Range(.Cells(1, piIndex), .Cells(.Rows.Count, piIndex).End(xlUp))
rngSpalte.Sort Key1:=rngSpalte.Range("A1"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom ', DataOption1:= _
xlSortNormal
End With
VerlagEintrag
End If
End Sub


Anzeige
AW: Oberschlumpf Makro - Ich krigs nicht hin !
05.05.2007 09:01:00
Bräuer
Danke für die Tipp´s
werds heute noch mal probieren
Gruß Thomas Bräuer

AW: Oberschlumpf Makro - Ich krigs nicht hin !
05.05.2007 18:03:00
Bräuer
Hi Franz
hat ein kleinwenig gedauert mußte erst mal einen auf Familie machen .
SO ABER ITZE
habe mir eine Neue Datei Angelegt
habe dann dein Makro1 rein
und die Userform
habe dann auf Tabelle eine Schaltfläche zu Makro1 gelegt
und dageht es auch schon nicht weiter .
die Pfeile sind von mir "wo der Code Stirbt "
Public piIndex As Integer

Sub Makro1()
' Makro1 Makro
' Makro am 27.04.2007 von userGobi aufgezeichnet
Dim Spalte As Integer
'Sortieren aller Spalten in Tabelle 2
With Worksheets("Tabelle2")
For Spalte = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column
'-->
.Columns(Spalte).Sort Key1:=.Cells(1, Spalte), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'                                                   



Sub VerlagEintrag()
Dim liZeile As Integer, liSpalte As Integer
With ThisWorkbook.Sheets(2)
For liSpalte = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column
If UserForm1.cmbIndex.Text = UCase(Left(.Cells(1, liSpalte), 1)) Then
UserForm1.cmbVerlag.Clear
For liZeile = 1 To .Cells(Rows.Count, liSpalte).End(xlUp).Row
UserForm1.cmbVerlag.AddItem .Cells(liZeile, liSpalte)
Next
piIndex = liSpalte
Exit Sub
End If
Next
End With
End Sub


Anzeige
AW: Oberschlumpf Makro - Ich krigs nicht hin !
07.05.2007 01:52:00
fcs
Hallo Bräuer,
ich hab hier deine von mir modifizierte Datei angehängt. Da ich mit EXCEl 97 arbeite musste ich in der Sortiermethode den Parameter "DataOption" weggelassen.
Dem Userform hab ich noch einen Ende-Button verpasst, damit man das UF ordentlich verlassen kann.
Bei mir funktioniert es so ordentlich.
https://www.herber.de/bbs/user/42299.xls
Gruß
Franz

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige