Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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
Inhaltsverzeichnis

With funktion ersetzen

With funktion ersetzen
04.07.2016 10:44:28
Fatih
Guten morgen Profis
Ich öffne mit einer Schaltfläche ein Word Dokument das die Daten von der Userform übernimmt.
In dieser Userform können bis zu 50 Zeilen mit je 5 werten drin stehen, ist aber nicht immer der Fall.
Wenn nur 4 Zeilen voll sind soll die Word Datei auch nur die 4 übernehmen und nicht die ganze Userform nach Daten absuchen.
Gibt es eine Möglichkeit es so zu gestalten, dass nach der Übertragung der Daten der Vorgang beendet wird, und nicht mehr weiter läuft.
So wie es jetzt ist dauert das ganze viel zu lange.

Set appWD = CreateObject("Word.Application")
appWD.Visible = True
appWD.Documents.Add Template:="Pfad"
With appWD.ActiveDocument
.FormFields("IDW").Result = ID
.FormFields("MaschinennummerW").Result = Maschinennummer.Value
.FormFields("KundeW").Result = Kunde.Value
.FormFields("VerbauungsortW").Result = Verbauungsort.Value
.FormFields("AusstellerW").Result = Aussteller.Value
.FormFields("WunschterminW").Result = Wunschtermin.Value
If BAF.Value = True Then
.FormFields("BAFW").Result = "BAF"
End If
If KAF.Value = True Then
.FormFields("KAFW").Result = "KAF"
End If
'.FormFields("BAFW").Result = BAF.Value entfernen
.FormFields("AbteilungW").Result = Abteilung.Value
.FormFields("DatumW").Result = Datum.Value
.FormFields("SchlüsselW").Result = Schlüssel.Value
.FormFields("InfoW").Result = Info.Value
.FormFields("BAFPosition1W").Result = BAFPosition1.Value
.FormFields("TeilenummerALT1W").Result = TeilenummerALT1.Value
.FormFields("TeilenummerNEU1W").Result = TeilenummerNEU1.Value
.FormFields("Menge1W").Result = Menge1.Value
.FormFields("Beschreibung1W").Result = Beschreibung1.Value
.FormFields("BAFPosition2W").Result = BAFPosition2.Value
.FormFields("TeilenummerALT2W").Result = TeilenummerALT2.Value
.FormFields("TeilenummerNEU2W").Result = TeilenummerNEU2.Value
.FormFields("Menge2W").Result = Menge2.Value
.FormFields("Beschreibung2W").Result = Beschreibung2.Value
.FormFields("BAFPosition50W").Result = BAFPosition50.Value
.FormFields("TeilenummerALT50W").Result = TeilenummerALT50.Value
.FormFields("TeilenummerNEU50W").Result = TeilenummerNEU50.Value
.FormFields("Menge50W").Result = Menge50.Value
.FormFields("Beschreibung50W").Result = Beschreibung50.Value
End With

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ich denke ohne Musterdatei...
04.07.2016 11:40:13
UweD
wird das nichts.
Lade mal eine anonymisierte Datei, inkl. eingebautem Makro, hoch
LG UweD

AW: ich denke ohne Musterdatei...
04.07.2016 12:05:05
Michael
Hi,
ich schließe mich Uwe an...
Du hast bestimmt eine UF mit ein paar "allg. Daten" von "ID" bis "Info", während die "eigentlichen Daten" tabellarisch angeordnet sind.
Für letztere bietet sich eine Listbox (anstelle der vielen TBen) an, derweil Daten darin als "Array" gehalten werden, und ein Array läßt sich viel besser in einer Schleife durchlaufen - die man wiederum abbrechen könnte, sobald leere Felder erscheinen.
Die Zuweisung ist denn auch easy, denn Deine FormFields entsprechen dann den Zeilennummern des Arrays, sinngemäß dann etwa so:
dim a
dim i as long
a=ListBox1.list
for i=0 to ubound(a)
if a(i,1)="" then Exit for
.FormFields("BAFPosition" & i & "1W").Result = a(i,1)
.FormFields("TeilenummerALT" & i & "W").Result = a(i,2)
.FormFields("TeilenummerNEU" & i & "W").Result = a(i,3)
.FormFields("Menge" & i & "W").Result = a(i,4)
.FormFields("Beschreibung" & i & "W").Result = a(i,5)
next
Schöne Grüße,
Michael

Anzeige
1. ist 'With' keine Funktion und 2. kann man ...
05.07.2016 00:43:32
Luc:-?
…das im Kopf der With-Anweisung genannte Objekt auch einer (kurz benannten) Objekt­Variablen zuweisen und dann diese Variable vor dem Pkt verwenden, Fatih;
aber das meinst du ja wohl eher nicht, sondern das ganze Konstrukt. Und da schließe ich mich Michael an, der den Inhalt des UF-Darstellungs-/Eingabe­Objekts zählen und dann per Schleife durchgehen will.
Morrn, Luc :-?
Besser informiert mit …

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige