Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA-Befehle in Private Sub CommandButton1_Click()

354 views
Skip to first unread message

Jürgen Stadermann

unread,
Jan 16, 2000, 3:00:00 AM1/16/00
to
... nachstehend alles unter Excel2000:

Ich implementiere eine Befehlschaltfläche in mein Tabellenblatt,ruf mir
anschließend den Code dazu auf, der da lautet

Private Sub CommandButton1_Click()

Kopiere ich hier - testweise - Befehle hinein,wie folgt:

Mitarbeiter = InputBox(Prompt:="Für welchen Mitarbeiter > Nachname
erforderlich < soll die Abrechnung erfolgen")
> > If Mitarbeiter = "Koch" Then
> > Sheets("Koch").Select
> > ElseIf Mitarbeiter = "Wilgeroth" Then
> > Sheets("Wilgeroth").Select
> > ElseIf Mitarbeiter = "Hamade" Then
> > Sheets("Hamade").Select
> > End If
> >
> > Monat = InputBox(Prompt:="Bitte den Abrechnungsmonat vorgeben")
> > If Monat = "Januar" Then
> > Range("D25:D43").Select
> > ElseIf Monat = "Februar" Then
> > Range("E25:E43").Select
> > End If

.... Oder die entsprechende CASE-Struktur

....Funktioniern zwar die - InputBoxen -
aber ich bekomme immer die Fehlermeldung:
Laufzeitfehler '1004'
Die Select-Methode des Range-Objektes ( b.z.w. IF...)konnte nicht
ausgeführt werden .
-- Aus meiner Ursprungsprozedur heraus funktioniert es.Ich habe diese CASE
b.z.w. If Befehle komplett
mannuell neugeschrieben, aber immer Fehlanzeige, was ist hier los?
Füge ich in mein Tabellenblatt eine Grafik ein ,weise ich dieser meine
VBA-Prozedur zu, habe ich -auf einfachste Art-praktisch eine Schaltfläche.
Unter Excel5(95) konnte man auch den CommandButton den VBA-Code so direkt
zuweisen, das ist hier
-so sehe ich es jedenfalls noch - umständlicher.
Ich muß also immer in den Code zum CommandButton und dann meine
Angelegenheiten einfügen.
Nun denke ich natürlich dadrann,daß man aus einer Prozedur die andere
aufrufen kann,
mit den Excel40-Makros (natürlich nicht zu vergleichen) war das dann
dahingegen einfach das man das andere Makro
( Beisp. > neueSuche() < ) als nächsten Befehl einschrieb und fertig.

Wie schreibe ich das jetzt?
Wie kann ich in eine vorhandene VBA Prozedur weitere Befehle mit
Macrorecorder aufzeichnen?

Ich bitte um Euere Antworten,meine Fragen sind zwar viele,ich hoffe aber Ihr
habt Nachsehen mit mir.
Danke
Jürgen.
Meine E-mail: Jues...@t-online.de

Marcus Schmitt

unread,
Jan 16, 2000, 3:00:00 AM1/16/00
to
"Die Select-Methode des Range-Objektes" deutet eigentlich darauf hin,
dass das angegebene Blatt nicht existiert.

Der Code zu einem CommandButton wird in neueren Excel-Version
nicht mehr in einem Modul gespeichert, sondern direkt in dem Sheet,
wo sich auch der Button befindet.

Es sei denn, Du schreibst Deine VBA-Routinen in einem separatem Modul
und rufst diese dann mit Call <Prozedurname> auf.

Dies empfiehlt sich meiner Meinung nach aber nur dann,
wenn diese Prozedur mehr als 1x vorkommt und benötigt wird !

Gruß
Marcus
http://www.marcus.schmitt.notrix.de


"Jürgen Stadermann" <Jues...@t-online.de> schrieb im Newsbeitrag
news:85sfsc$oum$1...@news04.btx.dtag.de...

Franz Hund

unread,
Jan 16, 2000, 3:00:00 AM1/16/00
to
Hallo Marcus,
ich habe ein ähnliches Problem. Wie kann ich eine Ereignisprozedur eines
Arbeitsblattes (z.B. Klick auf eine Checkbox ) mit einer Sub eines
Excel-Add-In verbinden. Der Aufruf des Sub mittels Befehl Call Subname
ergibt bei der Programmausführung ein Fehler im verborgenen Modul der
Tabelle x. Gleichfalls funktioniert ein Aufruf des Sub nur über den Subnamen
nicht. Was mache ich falsch?
Danke im voraus für Hilfe
Franz

Marcus Schmitt <Marcus-...@gmx.de> schrieb in im Newsbeitrag:
#fW0urCY$GA....@cppssbbsa02.microsoft.com...


> "Die Select-Methode des Range-Objektes" deutet eigentlich darauf hin,

....

Frank Arendt-Theilen

unread,
Jan 16, 2000, 3:00:00 AM1/16/00
to
Hallo Jürgen,
setzte die CommandButton-Eigenschaft 'TakeFocusOnClick' auf False.

MfG Frank
______________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel
E-Mail: Thei...@t-online.de


Am Sun, 16 Jan 2000 14:06:48 +0100, schrieb "Jürgen Stadermann"
<Jues...@t-online.de> in microsoft.public.de.excel zu "VBA-Befehle
in Private Sub CommandButton1_Click()":

Jürgen Stadermann

unread,
Jan 17, 2000, 3:00:00 AM1/17/00
to
Hallo marcus!
Erst einmal herzlichen Dank für deine Antwort!
Nun, das Tabellenblatt existiert,
das es von VBA erkannt wird, zeigt sich ja dadurch, daß wenn ich in die
InputBox den Tabellennamen eingebe auf die entsprechende Tabelle verzweigt
wird, nur, die dann folgende Select-Methode klappt nicht,
hast Du noch was anderes auf Lager?
Jürgen


Marcus Schmitt <Marcus-...@gmx.de> schrieb in im Newsbeitrag:
#fW0urCY$GA....@cppssbbsa02.microsoft.com...
> "Die Select-Methode des Range-Objektes" deutet eigentlich darauf hin,

> dass das angegebene Blatt nicht existiert.
>
> Der Code zu einem CommandButton wird in neueren Excel-Version
> nicht mehr in einem Modul gespeichert, sondern direkt in dem Sheet,
> wo sich auch der Button befindet.
>
> Es sei denn, Du schreibst Deine VBA-Routinen in einem separatem Modul
> und rufst diese dann mit Call <Prozedurname> auf.
>
> Dies empfiehlt sich meiner Meinung nach aber nur dann,
> wenn diese Prozedur mehr als 1x vorkommt und benötigt wird !
>
> Gruß
> Marcus
> http://www.marcus.schmitt.notrix.de
>
>
> "Jürgen Stadermann" <Jues...@t-online.de> schrieb im Newsbeitrag
> news:85sfsc$oum$1...@news04.btx.dtag.de...

Jürgen Stadermann

unread,
Jan 17, 2000, 3:00:00 AM1/17/00
to
Hallo Frank1
Herlichen Dank für Deine Antwort!.
Leider, auch jetzt funktioniert es nicht.
Alles ander klappt, warum?
Wenn Du noch etwas anderes auf Lager hast, gerne nehme ich es an.
Nochmals Danke
Jürgen.

Jues...@t-online.de


Frank Arendt-Theilen <Thei...@t-online.de> schrieb in im Newsbeitrag:
kh748socqc7rt2lj6...@4ax.com...


> Hallo Jürgen,
> setzte die CommandButton-Eigenschaft 'TakeFocusOnClick' auf False.
>
> MfG Frank
> ______________________________________________________
> Frank Arendt-Theilen, Microsoft MVP für Excel
> E-Mail: Thei...@t-online.de
>
>
> Am Sun, 16 Jan 2000 14:06:48 +0100, schrieb "Jürgen Stadermann"
> <Jues...@t-online.de> in microsoft.public.de.excel zu "VBA-Befehle
> in Private Sub CommandButton1_Click()":
>

Martin Beck

unread,
Jan 18, 2000, 3:00:00 AM1/18/00
to
Hallo Jürgen,

schreibe vor die Range-Anweisung
Sheets(Mitarbeiter).
also
Sheets(Mitarbeiter).Range("D25:D43").Select
statt
Range("D25:D43").Select


Gruß
Martin Beck

Jürgen Stadermann <Jues...@t-online.de> schrieb in im Newsbeitrag:
85sfsc$oum$1...@news04.btx.dtag.de...

0 new messages