Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
784to788
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
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Makro per Schalter starten
24.07.2006 09:21:32
Max
Hallo zusammen,
Ich möchte gerne folgendes Makro über einen Knopf starten. Leider funktioniert es nicht. Woran könnte das liegen?
Danke für Hilfe.
Lg Max
Windows("Report_OrdersOfApplication.xls").Activate
Set a = Cells.Find("OMC Type")
If Not a Is Nothing Then r = a(1, 1).Row: c = a(1, 1).Column
lz = Cells(Rows.Count, c).End(xlUp).Row
Range(Cells(r, c), Cells(lz, c)).Select
Selection.Copy
Windows("endversion.xls").Activate
Sheets("Daten aus Tabelle").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Config. Total").Select
Range("B5").Select
ActiveCell.FormulaR1C1 = "=COUNTIF('Daten aus Tabelle'!C[-1],""CTL"")"
Range("C5").Select
ActiveCell.FormulaR1C1 = "=COUNTIF('Daten aus Tabelle'!C[-2],""OMC_MINI"")"
Range("D5").Select
ActiveCell.FormulaR1C1 = _
"=COUNTIF('Daten aus Tabelle'!C[-3],""OMC_NIGHTTIME"")"
Range("E5").Select
ActiveCell.FormulaR1C1 = _
"=COUNTIF('Daten aus Tabelle'!C[-4],""OMC_REDUNDANT"")"
Range("F5").Select
ActiveCell.FormulaR1C1 = "=COUNTIF('Daten aus Tabelle'!C[-5],""OMC_SMALL"")"
Range("G5").Select
ActiveCell.FormulaR1C1 = "=COUNTIF('Daten aus Tabelle'!C[-6],""OMC_STANDARD"")"

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro per Schalter starten
24.07.2006 09:26:16
Matthias
Hallo Max,
Leider funktioniert es nicht.
Was funktioniert nicht?
Welchen "Knopf" benutzt du, den aus der Formular- oder aus der Steuerelement-Symbolleiste?
Wie versuchst du, das Makro zuzuordnen?
Gruß Matthias
AW: Makro per Schalter starten
24.07.2006 09:39:23
Max
Hallo Matthias,
Ich nehme aus der Steuerelmentleiste eine Befehlsschaltfläche.
Über rechte Maustaste "Code anzeigen" kopiere ich dann das Makro hinein.
Die Fehlermeldung: Laufzeitfehler 1004; Anwendungs- oder objektdefinierter Fehler...
Danke
Max
AW: Makro per Schalter starten
24.07.2006 09:47:16
Matthias
Hallo Max,
Es liegt wahrscheinlich daran, dass der Cod in einem Tabellenmodul steht und die Objekte teilweise andere Default-Einstellungen haben... (sorry, schlecht formuliert).
in welcher Zeile kommt die Fehlermeldung?
Kopiere dein Makro mit Prozedurkopf und -fuß in ein allgemeines Modul (z.B. Modul1) und schreibe in die CommandButton1_Click()-Prozedur nur den Aufruf dieses Makros:

Private Sub CommandButton1_Click()
Call MeinMakro
End Sub

Gruß Matthias
Anzeige
AW: Makro per Schalter starten
24.07.2006 10:24:59
Max
Super, der Schalter funktioniert, danke.
Den zweiten Eintrag bez. des Fehlers hab ich nicht verstanden.. Es funktioniert eigtl. alles so wie ich das will.. könnte ich dennoch irgendwann Fehler bekommen?
Max
AW: Makro per Schalter starten
24.07.2006 10:31:55
Matthias
Hallo Max,
schau her:

' aktiviere Mappe "Report_OrdersOfApplication.xls":
Windows("Report_OrdersOfApplication.xls").Activate
' Suche in aktivem Blatt (welches ist das?) nach "OMC Type":
Set a = Cells.Find("OMC Type")
' wenn gefunden, dann r = ...: c = ...
' ABER: wenn nicht gefunden, bleibt c = 0 !!
If Not a Is Nothing Then r = a(1, 1).Row: c = a(1, 1).Column
' Variable lz zuordnen: Fehler, wenn c=0!
lz = Cells(Rows.Count, c).End(xlUp).Row

Es fehlt also etwas wie:

Windows("Report_OrdersOfApplication.xls").Activate
Set a = Cells.Find("OMC Type")
If Not a Is Nothing Then
r = a(1, 1).Row: c = a(1, 1).Column
Else
MsgBox "Fehler: 'OMC Type' nicht gefunden!"
Exit Sub
End If
lz = Cells(Rows.Count, c).End(xlUp).Row
Range(Cells(r, c), Cells(lz, c)).Select

Außerdem aktivierst du die Mappe Report_OrdersOfApplication.xls, aber welches Blatt dann aktiv ist, bleibt dem Zufall überlassen.
Gruß Matthias
Anzeige
AW: Makro per Schalter starten
24.07.2006 09:54:43
Matthias
Hallo Max,
dann fiel mir noch in Zeile 3 auf:

If Not a Is Nothing Then r = a(1, 1).Row: c = a(1, 1).Column

d.h., wenn "a Is Nothing", dann wird c nicht zugeordnet und bleibt 0, und in der nächsten Zeile kommt ein Fehler (Cells(Rows.Count, c), Spalte 0 gibt es nicht)
Gruß Matthias
AW: Makro per Schalter starten
24.07.2006 21:06:19
Daniel
Hallo,
wenn der Code ein einem freien Modul steht und dort per Aufruf über die Liste funktioniert, dann nimmt man zum komfortablen Starten des Makros in der Regel kein Steuerelement, sondern ein Formularfeld oder einfach ein beliebiges Grafikelement. (Rechteck, Textbox, egal), klickt mit der rechten Maustaste drauf und wählt "Makro zuweisen" aus. Steuerelemente sind für sowas einfach nur unnötig kompliziert.
Gruß, Daniel
Anzeige
AW: Makro per Schalter starten
24.07.2006 22:40:54
Matthias
Hallo Daniel,
Steuerelemente sind für sowas einfach nur unnötig kompliziert.
Findest Du? Finde ich nicht.
Gruß Matthias
AW: Makro per Schalter starten
25.07.2006 01:53:50
Daniel
Hallo,
Find ich schon, sonst hätte ichs ja nicht geschrieben.
Allein schon das Formatieren geht doch über die Standartfunktionen mit Shapes einfacher als über die Eigenschaft-Box.
Über application.caller kann ich auslesen, welches Shape das Makro aufgerufen hat und so kann ich das gleiche Makro für mehrere Schalter verwenden, ohne Code doppelt schreiben zu müssen.
Gruß, Daniel
AW: Makro per Schalter starten
25.07.2006 13:41:41
Matthias
Hallo Daniel,
Find ich schon, sonst hätte ichs ja nicht geschrieben.
Ja logisch, sorry für die dumme Bemerkung...
Ich nutze jedenfalls die Formularelemente nie, weil diese keine Ereignisse (außer dem Klick-Ereignis) verarbeiten können.
Für einen einfachen Makrostart mögen sie sicherlich nützlich sein.
Gruß,
Matthias
Anzeige
AW: Makro per Schalter starten
25.07.2006 21:50:33
Daniel
Klar, wenn ich komplexe funktionen brauche, nehme ich auch Steuterelemente, aber nur zum Makrostarten reicht ja auch was einfaches.
Außderdem habe ich schon erlebt, daß die Steuerelmente nicht ganz sauber programmiert sind, bspw. haben sie schon mal spontan die Postition verändert, bzw sind (ich glaube nach Seiteansicht oder so) alle nach links auf die erste Zelle gewandert.
Deswegen bin ich da ein bisschen vorsichtig.
und bei der ganzen Event-gesteuerten Makros bin ich auch vorsichtig, da muß man sich schon recht sicher sein, was passiert und wer durch wen ausgelöst wird.
Gruß, Daniel
Anzeige
AW: Makro per Schalter starten
25.07.2006 23:00:13
Matthias
Hallo Daniel,
bspw. haben sie schon mal spontan die Postition verändert, bzw sind (ich glaube nach Seiteansicht oder so) alle nach links auf die erste Zelle gewandert.
Das ist ein bekannter Bug, lässt sich aber umgehen:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;838910#kb2
Gruß Matthias

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige