Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1268to1272
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

Programmierlogig mit With und .-Befehle

Programmierlogig mit With und .-Befehle
ing.grohn
Hallo Forum,
ich benötige wieder mal ein wenig Unterstützung!
Folgendes Problem: ein Programmteil (schreibt Daten in ein Dokument) wird von zwei With Anweisungen geklammert:

With DocNeu
.Bookmarks("Anrede").Range.Text = strAnrede
.Bookmarks("Name").Range.Text = strName
With .Application.Selection
.Font.Bold = True
.Font.Size = 10
.TypeText Text:= "nur gefaxt"
.Font.Bold = False
If uf.OptionButton1 = True Then
.TypeText Text:= "erste Unterscheidung"
.BLOCK_A
ElseIf   uf.OptionButton2 = True Then
.TypeText Text:= "ZWEITE Unterscheidung"
.BLOCK_A
ElseIf ...
End IF
End With 'Application
End With 'DocNeu

In dem "Platzhalter" BLOCK_A (kommt im Ablaublauf mehr als zweimal vor) sind immer die gleichen .TypeText, .TypeParagraph, .MoveDown, .Find etc. Befehle enthalten.
Frage: Wie muß ich ein Unterprogramm formulieren und aufrufen, das diese Befehle enthält?
Ich bedanke mich recht herzlich für Eure Hilfe
Einen schönen Sonntag wünscht
Albrecht
AW: Programmierlogig mit With und .-Befehle
15.07.2012 15:48:34
Hajo_Zi
Hallo Albrecht,
Selection kann nur auf der aktiven Tabelle sein.

AW: Programmierlogig mit With und .-Befehle
15.07.2012 16:12:08
ing.grohn
Hallo Hajo,
heißt das: keine subs für dieses Problem?
MfG
ALbrecht
AW: Programmierlogig mit With und .-Befehle
15.07.2012 16:14:15
Hajo_Zi
Hallo Albrecht,
was möchtest Du mir mitteilen?
Das erste With ist sinnlos, da selection nur in der aktiven Tabelle.
Gruß Hajo
AW: Programmierlogig mit With und .-Befehle
15.07.2012 16:30:34
ing.grohn
Hallo Hajo,
sinnlos kann die Geschichte wohl nicht sein, denn sie funktioniert ja so!
ich kann nicht genau sagen, wo das Problem liegt:
ich weiß nämlich nicht, ob und wie ich die sich wiederholenden Blöcke der jeweiligen If Abfragen in subs auslagern kann!(ich bin immer auf der gleichen Tabelle)
MfG
Albrecht
Anzeige
AW: Programmierlogig mit With und .-Befehle
15.07.2012 16:37:05
Hajo_Zi
Hallo Albrecht,
und wenn ich das richtig sehe ist es immer die aktive? Wie ich schon geschrieben hatte.
Ich baue keine Datei nach, die Zeit hat schon jemand investiert. Ein Link zur Datei wäre nicht schlecht.
Gruß Hajo
AW: Programmierlogig mit With und .-Befehle
15.07.2012 17:01:42
Hajo_Zi
Hallo Albrecht,
ich hätte für Application.selection wohl .Range(Selection.Address) geschrieben.
Ich vermute mal du möchtest in der Tabelle den Bereich bearbeiten, der in der aktuellen markiert ist.
Gruß Hajo
Anzeige
AW: Programmierlogig mit With und .-Befehle
15.07.2012 20:06:47
ing.grohn
Hallo Hajo,
so einfach ist das nicht immer eine Beispiel-Datei zu übergeben ohne das der Helfer sich durch unnützen Ballast kämpfen muß. Deshalb hatte ich einen verkürzten Programmteil angegeben.
Vielen Dank
Mit freundlichen Grüßen
Albrecht
Programmierlogik
15.07.2012 17:21:10
Erich
Hi Albrecht,
auch wenn etwas funktioniert, können durchau Teile davon sinnlos sein...
Was soll hier das Application vor Selection?
Für eine richtige Hilfestellung hast du zu wenige Infos gegeben.
Was soll das Unterprogramm tun?
Welche Parameter müssen übergeben werden?
Schau dir den Code mal an. Einen Parameter habe ich deinem Code entnommen -
den Unterscheidungstext. Zwei weitere habe ich dazu erfunden:

Option Explicit
Private Sub UserForm_Click()
With DocNeu
.Bookmarks("Anrede").Range.Text = strAnrede
.Bookmarks("Name").Range.Text = strName
End With 'DocNeu
With Selection
.Font.Bold = True             ' Wat denn nu - True oder False?
.Font.Size = 10
.TypeText Text:="nur gefaxt"
.Font.Bold = False            ' Wat denn nu - True oder False?
End With 'Selection
If uf.OptionButton1 Then
Call DoIt("erste Unterscheidung", 1, 123456)
ElseIf uf.OptionButton2 Then
Call DoIt("ZWEITE Unterscheidung", 20, 987)
ElseIf ...
End If
End Sub
Sub DoIt(strUnterscheidung As String, intParam, lngSuch As Long)
With Selection
.TypeText strUnterscheidung
.TypeParagraph
.MoveDown intParam
.Find lngSuch '?
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: Programmierlogik
15.07.2012 20:03:20
ing.grohn
Hallo Erich,
die With Klammerungen müssen scheints so sein, wie ich Sie vorgegeben habe.
Dein Vorschlag käme mir sehr entgegen, weil ich dadurch einfacher Strukturieren könnte. Leider funktioniert das so nicht.
zu Deiner Bemerkung zum
Font.Bold = True             ' Wat denn nu - True oder False?

folgendes: zunächst Fettschrift einschalten, dann den Text und dann fett aus!
Also nicht Wat denn nu sondern an und aus!
Vielen Dank für Deine Hilfe
Mit freundlichen Grüßen
Albrecht
AW: Programmierlogik
15.07.2012 20:23:46
Erich
Hi Albrecht,
sorry - das mit "zunächst Fettschrift einschalten, dann den Text und dann fett aus" kennt man in Excel so nicht,
und mit Word-VBA (damals WordBasic...) habe ich schon 15 Jahre nicht mehr gespielt,
deshalb mein Irrtum.
Und mit den Word-Objekten kenne ich mich auch nicht aus, bin davon ausgegangen: Ist wie in Excel...
Ich hoffe, mit dem Unterprogramm-Beispiel kannst was anfangen...
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich und: Schönen Sonntagabend allerseits!
Anzeige
AW: Programmierlogik
15.07.2012 21:17:04
ing.grohn
Hallo Erich,
ich verwalte meine Daten in Excel. Natürlich erfolgen alle Berechnungen (Rechnungen, Zinsberechnungen etc) in Excel.
Alle Druckausgaben erfolgen über Word gesteuert über entsprechende Vorlagen. Der Druck erfolgt direkt (Etiketten und Formbriefe) oder indirekt, sodass noch Änderungen im Text möglich sind (Briefe).
Somit habe ich auch immer mit Word-Programmierung zu kämpfen.
Einen schönen Abend wünscht
Albrecht
AW: Programmierlogig mit With und .-Befehle
15.07.2012 16:41:42
Reinhard
Hallo Albrecht,
With DocNeu
.Bookmarks("Anrede").Range.Text = strAnrede
.Bookmarks("Name").Range.Text = strName
With .Application.Selection
.Font.Bold = True
.Font.Size = 10
.TypeText Text:="nur gefaxt"
.Font.Bold = False
If uf.OptionButton1 = True Then
.TypeText Text:="erste Unterscheidung"
Call BLOCK_A(.Application)
ElseIf uf.OptionButton2 = True Then
.TypeText Text:="ZWEITE Unterscheidung"
Call BLOCK_A(.Application)
ElseIf ...
End If
End With 'Application
End With 'DocNeu
Sub BLOCK_A(S)
With S.Selection
.TypeText
.TypeParagraph
.MoveDown
.Find
End With
End Sub

Gruß
Reinhard
Anzeige
AW: Programmierlogig mit With und .-Befehle
15.07.2012 19:55:29
ing.grohn
Hallo Reinhard,
das funktioniert so, wie ichs mir gedacht habe!
Vielen Dank!
Mit freundlichen Grüßen
Albrecht
AW: Programmierlogig mit With und .-Befehle
15.07.2012 17:33:50
ing.grohn
Hallo Hajo, Erich und Reinhard,
die Sache muß ich jetzt erst mal überdenken! Scheint so, asl ob ich die Klammerung mit DocNeu falsch verstanden! Erich, ich werde Deine Aufteilung aufgreifen und probieren.
Reinhard, Dein Beitrag beantwortet meine Frage auch!!
Ich melde mich später mit den Ergebnissen.
Erst mal vielen Dank
Mit freundlichen Grüßen
Albrecht
AW: Programmierlogik mit With und .-Befehle
15.07.2012 19:43:50
Reinhard
Hallo Albrecht,
ich denke es wäre sehr gut wie schon Hajo anregte du zeigst da mal so eine Doc.
Und lauffähigen Code ohne ...
So daß man konkret reagieren kann.
Ich bin mir unsicher, geht es dir um das grunsätzliche Verständnis von
With Umklammerungen oder speziell um die Parameterübergabe bei Aufruf einer
Untersub in dieser Klammer.?
Gruß
Reinhard
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige