Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1280to1284
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
Makro funktiniert nicht bei anderer Datei
08.10.2012 19:03:51
kurt
Guten Abend zusammen,
dieses Makro klappt einwandfrei.
Jedoch nicht in der jetzigen, WIESO ?
Hatte ich auch übers Forum vor langer Zeit geladen.
"Laufzeitfehler 424"
Objekt erforderlich

Public Sub Sortieren()
Dim Sortieren As String, lngSpalte As Long, z As Long, Mldg As Variant
Dim ww       'spalte ermitteln
ww = Application.Substitute(ActiveCell.Address(0, 0), ActiveCell.Row, "")
'Mldg = "Geben Sie für die gewünschte Spalte A,B,C,... oder die Spaltennummer ein"
'sortieren = InputBox(Mldg, "Spaltensortierung", "B", 4500, 4000)   '2000 von oben
Mldg = "Geben Sie für die gewünschte Spalte A,B,C,... oder die Spaltennummer ein" _
& Chr(13) & Chr(13) & "Sie können die Spalte:   " & ww _
& Chr(13) & Chr(13) & "übernehmen oder ändern !"
Sortieren = InputBox(Mldg, "Spaltensortierung", ww, 4500, 5000)   '2000 von oben
On Error GoTo Fehler
If Not IsNumeric(Sortieren) Then
lngSpalte = CLng(Columns(Sortieren).Column)
Else
lngSpalte = CLng(Sortieren)
End If
If 0  0 Then Err.Clear
MsgBox "Sie haben agebrochen . . ."
End If
End Sub
mfg Kurt K

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro funktiniert nicht bei anderer Datei
08.10.2012 19:31:44
Rudi
Hallo,
wo tritt der Fehler auf?
Sollen wir uns eine Mappe basteln, in der es nicht funktioniert?
Was soll das? If 0 < lngSpalte < 21 Then
Gruß
Rudi

Bleibt hier stehen...
08.10.2012 19:33:52
kurt
Hallo Rudi,
bleibt hier stehen:
ww = Application.Substitute(ActiveCell.Address(0, 0), ActiveCell.Row, "")
mfg Kurt K

Vermutung
08.10.2012 19:46:03
Erich
Hi Kurt,
startest du das Makro mittels Button (ActiveX)? Dann schau mal bei den Button-Eigenschaften,
wie "TakeFocusOnClick" steht. Sollte auf False stehen.
Wenn TakeFocusOnClick True ist, ist nach dem Klick keine Zelle aktiv, sondern der Button. ActiveCell ist also Nothing.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Vermutung
08.10.2012 19:56:24
kurt
Hallo Erich,
ich starte mit einem "AutoForm9",
habe auch CommandB getestet und auf False gestellt.
mfg kurt k

ActiveCell gips nich
08.10.2012 20:18:35
Erich
Hi Kurt,
die Fehlermeldung sagt mir, dass beim Aufruf keine Zelle die aktive Zelle ist.
Um zu erkennen, ob das aktive Blatt ein Tabellenblatt ist und nur keine Zelle aktiv ist,
bau mal bitte in die Prozedur gleich unter "Dim ww" als neue Zeile ein:
MsgBox ActiveWindow.RangeSelection.Address
Das liefert einen Fehler, wenn gar kein Tabellenblatt aktiv ist.
Wenn es hier keinen Fahler gibt, ist die "AutoForm9" das aktive Element, nicht aber eine Zelle.
Du könntest dann vielleicht (ins Blaue hinein...!)
RangeSelection.Cells(1) statt ActiveCell verwenden-
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: ActiveCell gips nich
08.10.2012 20:25:34
kurt
Hallo Erich,
es wird "D3" in der MSGBOX angezeigt.
mfg kurt k

AW: Makro funktiniert nicht bei anderer Datei
08.10.2012 19:37:08
Erich
Hi Kurt,
da sind ein paar Ungereimtheiten im Code. Lass mal diese Version laufen und schreibe uns dann,
in welcher Codezeile der Fehler auftritt. Du kannst im Fehlerfall auch mal im VBA-Lokalfenster schauen,
ob die Variablen die richtigen Werte haben.

Option Explicit
Public Sub Sortieren()
Dim Sortieren As String, lngSpalte As Long, z As Long, Mldg As Variant
Dim ww       'spalte ermitteln
ww = Application.Substitute(ActiveCell.Address(0, 0), ActiveCell.Row, "")
'Mldg = "Geben Sie für die gewünschte Spalte A,B,C,... oder die Spaltennummer ein"
'sortieren = InputBox(Mldg, "Spaltensortierung", "B", 4500, 4000)   '2000 von oben
Mldg = "Geben Sie für die gewünschte Spalte A,B,C,... oder die Spaltennummer ein" _
& Chr(13) & Chr(13) & "Sie können die Spalte:   " & ww _
& Chr(13) & Chr(13) & "übernehmen oder ändern !"
Sortieren = InputBox(Mldg, "Spaltensortierung", ww, 4500, 5000)   '2000 von oben
'   On Error GoTo Fehler               ' zum Testen besser auskommentieren!
If IsNumeric(Sortieren) Then
lngSpalte = CLng(Sortieren)
Else
lngSpalte = CLng(Columns(Sortieren).Column)
End If
'  If 0  0 Then
MsgBox "Hier gab es einen Fehler..."
Err.Clear
End If
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
Gleiche Fehlermeldung
08.10.2012 19:47:50
kurt
Guten Abend Erich,
leider gleiche Fehlermeldung und an
gleicher Stelle wie vorhin.
Anmerkung:
In der anderen Datei funktioniert es einwandfrei, habe nichts
gändert.
mfg kurt K

Ich habs -)
08.10.2012 21:04:43
kurt
Hallo zusammen,
ich habe die Lösung. Habe mal gesucht und gefunden wie man den Spaltenbuchstaben
ermittelt.
Der wird dann übernommen und danach sortiert.
Dim Adr, ww As String
Adr = ActiveCell.Address()
ww = Mid(Adr, 2, InStr(2, Adr, "$") - 2)
MsgBox ww
'ww = Application.Substitute(ActiveCell.Address(0, 0), ActiveCell.Row, "")
Mldg = "Geben Sie für die gewünschte Spalte A,B,C,... oder die Spaltennummer ein" _
& Chr(13) & Chr(13) & "Sie können die Spalte: " & ww _
& Chr(13) & Chr(13) & "übernehmen oder ändern !"
Sortieren = InputBox(Mldg, "Spaltensortierung", ww, 4500, 5000) '2000 von oben
.....
schönen Dank und schönen Abend noch.
mfg kurt k

Anzeige
Zweifel
09.10.2012 08:34:03
Erich
Hi Kurt,
dass das die Lösung ist, bezweifle ich. "ActiveCell.Address()" setzt die Existenz der aktiven Zelle voraus.
Wenn ActiveCell existiert, funktioniert auch dein alter Code. Wenn nicht, kracht's auch im neuen.
Hast das in den selben Mappen getestet?
Oder verstehe ich das irgendwie völlig miss?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: Zweifel Nein
09.10.2012 08:44:26
kurt
Guten Morgen Erich,
es funktioniert einwandfrei.
Auch in der Mappe wo es nicht geklappt hatte.
Ich habe es so verstanden, dass der Spaltenbuchstabe nicht "sauber"
ausgelesen werden konnte.
Nun steht der Spaltenbuchstabe in der Inputbox und es danach sortiert.
mfg kurt k
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige