PDA

Vollständige Version anzeigen : Problem mit AutoNew Macro (VBA)


niceguy82
29.07.2009, 09:32
Hallo Comunety,

ich hoffe einer von euch kann mir helfen.
Ich habe folgendes Problem:

Ich habe mir eine Vorlage erstellt (.dot). In dieser Vorlage werden Daten mit hilfe eines UserForms an Textmarken in der Vorlage eingetragen.

Die Anzeige des User Forms habe ich mit AutoNew gemacht:

Sub autonew()
'
' autonew Makro
'
'
UserForm1.Show

End Sub


Soweit funktioniert das ganze auch!

Doch jetzt muss nach dem UserForm1 noch ein UserForm2 abgefragt werden. (vieleicht sogar noch ein drittes).

Wie muss ich das jetzt in den Code vom AutoNew eintragen?

Ich hatte volgendes Probiert:
Sub autonew()
'
' autonew Makro
'
'
UserForm1.Show
UserForm2.Show

End Sub

So funktioniert es aber keider nicht.

Vieleicht kann mir ja jemand mal nen kleinen Tip geben denn ich steh im Moment total auf dem Schlauch:grins:

Schonmal vielen Dank fürs Lesen und Grüße,

Niceguy

peppi
29.07.2009, 09:40
Hallo Niceguy,

selbst wenn es ginge, mehrere Userformen auf einmal anzuzeigen (was ich momentan nicht beantworten kann), wäre das für die User sehr unübersichtlich. Da würde ich lieber eine einzige Userform mit Multiseiten aufbauen.

Oder aber eine Schaltfläche auf den einzelnen Userformen, mit denen man die jeweils anderen aufrufen kann...
<br>

niceguy82
29.07.2009, 09:56
Hallo Niceguy,

selbst wenn es ginge, mehrere Userformen auf einmal anzuzeigen (was ich momentan nicht beantworten kann), wäre das für die User sehr unübersichtlich. Da würde ich lieber eine einzige Userform mit Multiseiten aufbauen.

Oder aber eine Schaltfläche auf den einzelnen Userformen, mit denen man die jeweils anderen aufrufen kann...
<br>
Hallo peppi,

erstmal Danke für die schnelle Antwort.

also er soll ja die Userfoms nicht auf einmal anzeigen sondern hintereinander weg (das müsste eigentlcih auch gehen denn in der Früheren Lösung der Vorlage kamen auch drei Userforms hintereinander) Ich kann nur leider nicht in die frühere Version reinschauen da sie noch von 1995 ist und noch volkommen anderer Macro Code benutzt wurde.

Im UserForm1 wird zum beispiel das Adressfeld ausgefüllt mit UserForm2 sollen bestimmte Kopfzeilendaten gesetzt werden und im UserForm3 sollen dann Daten aus dem Text eingefügt werden.

Pro UserForm werden so drei bis 7 Sachen erfragt. Deswegen wollte ich sie wieder nacheinander haben. Damit nicht so viel auf einmal in einem UserForm steht.

Oder giebt es die möglichkeit das ich das irgendwie so machen kann das mit einem weiter Butten zur nächsten Abfrage gesprungen werden kann?

peppi
29.07.2009, 10:06
Hallo,

naja, Du könntest doch mit dem Code des OK-Buttons der ersten Userform die Daten schon einmal ins Dokument schreiben lassen, dann die Userform1 schließen und die Userform2 aufrufen. Dasselbe dann wieder mit Userform2 zu Userform3. Ich denke mal, daß das in der alten Version auch so gemacht wurde...
<br>

niceguy82
29.07.2009, 10:11
Ja das klingt doch gut nur wie mache ich das?

Der Code meines OK Butons:

Private Sub CommandButton1_Click()
With ActiveDocument
.Bookmarks("aName1").Range _
.InsertBefore TextBox1
.Bookmarks("aName2").Range _
.InsertBefore TextBox2
.Bookmarks("aName3").Range _
.InsertBefore TextBox2
.Bookmarks("aStr").Range _
.InsertBefore TextBox2
.Bookmarks("aOrt").Range _
.InsertBefore TextBox2
End With

UserForm1.Hide
End Sub

Private Sub Label1_Click()

End Sub

Ginsky
29.07.2009, 10:23
Hallo zusammen

Hab kurz gebastelt...

Schreib deine With-Anweisung vor den Aufruf der nächsten Userform. Das sollte dann schon passen.

peppi
29.07.2009, 10:29
Hallo,

also ohne jetzt das Beispiel von Ginsky angesehen zu haben... Du solltest die Userform mit Unload Me schließen und nicht mit Hide, damit wird die Userform nämlich nur versteckt, aber nicht geschlossen..

Und mit
Unload Me
Userform2.Show
kannst Du die nächste Userform aufrufen..
<br>

niceguy82
29.07.2009, 10:42
Super Ginsky,

ich danke dir für das tolle Beispiel klapt ohne Probleme.

Peppi dir danke ich natürlich auch für deine schnelle Hilfe!

Ihr seid echt SUPER und habt mir viel Zeit gespart! :grins: :D

Kann nur nochmal sagen DANKE von Herzen ;)

niceguy82
29.07.2009, 13:28
Mir ist gerade aufgefallen das ich Daten aus einem eingabe Feld des Userform mehr mals in der Vorlage brauche.

Kann ich denn einen Wert aus einem Textfeld des Userforms an 2 oder mehr Textmarken ausgeben?

Zum Beispiel wenn ich den Wert aus Textbox1 (sihe unten) nicht nur an die Textmarke "aName1" sondern auch bei der textmarke "aName12"
With ActiveDocument
.Bookmarks("aName1").Range _
.InsertBefore TextBox1
.Bookmarks("aName2").Range _
.InsertBefore TextBox2
.Bookmarks("aName3").Range _
.InsertBefore TextBox2
.Bookmarks("aStr").Range _
.InsertBefore TextBox2
.Bookmarks("aOrt").Range _
.InsertBefore TextBox2
End With

Es währe schön wenn ihr mir nochmal helfen könnt ;)

Schonmal Danke im vorraus,

NIceguy

peppi
29.07.2009, 15:33
Hallo,

klar kannst Du das machen... einfach Deinen Code dahingehend ändern... Also die Zeilen noch dazu nehmen... Wobei dieser Code sowieso etwas kryptisch ist...
<br>

niceguy82
30.07.2009, 06:54
Morgen Peppi,
das heißt ich muss das nur so wie unten ändern?

With ActiveDocument
.Bookmarks("aName1").Range _
.InsertBefore TextBox1
.Bookmarks("aName12").Range _
.InsertBefore TextBox1
.Bookmarks("aName2").Range _
.InsertBefore TextBox2
.Bookmarks("aName3").Range _
.InsertBefore TextBox3
.Bookmarks("aStr").Range _
.InsertBefore TextBox4
.Bookmarks("aOrt").Range _
.InsertBefore TextBox5
End With

Grüße,

Niceguy

Ginsky
30.07.2009, 08:46
Hi

Probiers einfach mal aus. Sollte eigentlich klappen. Wenn nicht, dann melde dich einfach nochmal. Und poste dann wenn möglich das Dokument.