Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VB Syntax Makro if then else

Frage Entwicklung VB for Applications

Mitglied: coxsrcrub

coxsrcrub (Level 2) - Jetzt verbinden

13.11.2007, aktualisiert 14.11.2007, 6344 Aufrufe, 3 Kommentare

if "textxy" *18* then ........... end if

Guten Morgen zusammen,

ich baue gerade ein Makro unter W2003 welches unter anderem einen Wert aus dem Feld "Text59" auslesen soll um dann das aktive Dokument weiter zu bearbeiten. Es soll lediglich geprüft werden ob z.B. die Zahl/Variable 18 enthalten ist. Ich finde irgendwie keine Beschreibung wie ich festlegen kann das der Wert nicht gleich 18 ist sondern nur Anteilig die Zahl 18 enthält. Die Zeichen * und % sind mir als erstes im Gedanken gekommen, sind aber falsch.

Wer hilft mir mal schnell auf die Sprünge?

Hier mal der bisherige Syntax dazu:

H18 und Datei wurden vorab per Dim definiert.

So in etwa habe ich mir das gedacht, funktioniert natürlich nur wenn der Wert genau 18 ist!
Wenn der Wert nun eben nicht genau 18 entspricht bekomme ich dann natürlich einen Laufzeitfehler 13, weil die Werte nicht der Vorgabe entsprechen.

If ActiveDocument.Bookmarks("Text59").Range.Text = 18 Then ActiveDocument.SaveAs H18 & Datei
MsgBox "Das Dokument wurde verarbeitet"

da ich nun eine ziemlich dilettantische Übergangslösung einsetze bin ich für alle weiteren Lösungen offen. Die Select Case Anweisung scheint ja hierfür auch irgendwie möglich zu sein. Der betreffende Auszug aus dem "Meisterwerk" sieht derzeit wie folgt aus:

If (ActiveDocument.Bookmarks("Text59").Range.Text = "18") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18a") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18b") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18c") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18d") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "Haus18") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "Haus 18") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "H18") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18A") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18B") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18C") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18D") Then
ActiveDocument.SaveAs H18 & Datei
MsgBox "Das Dokument wurde für die Kostenstelle 18 verarbeitet"
End If


Grüße Jörg
Mitglied: RDiller
13.11.2007 um 17:07 Uhr
Probier doch mal die INSTR Funktion

z.B.:
Suchtext = ActiveDocument.Bookmarks("Text59").Range.Text
gefunden = instr(Suchtext,"18") 'Wenn der Suchstring vorhanden, gibt die Funktion TRUE zurück
if gefunden
ActiveDocument.SaveAs H18 & Datei
MsgBox "Das Dokument wurde für die Kostenstelle 18 verarbeitet"
End If
Bitte warten ..
Mitglied: coxsrcrub
13.11.2007 um 18:09 Uhr
Hi,

das sieht gut aus. Werde ich gleich Morgen mal austesten. Die Funktion war sogar meine erste Wahl, habe den Syntax offensichtlich wohl vorab völlig verdreht. 0

Grüße Jörg
Bitte warten ..
Mitglied: coxsrcrub
14.11.2007 um 10:16 Uhr
Hallo,

ist genau das was ich wollte.

Der betreffende Auszug sieht nun wie folgt aus.

Suchtext = ActiveDocument.Bookmarks("Text59").Range.Text
gefunden = InStr(Suchtext, "18")
If gefunden Then
ActiveDocument.SaveAs H18 & Datei '
MsgBox "Das Dokument wurde für die Kostenstelle 18 verarbeitet"
End If

Lediglich für die Kostenstellen 1 habe ich weiter die alte Syntax stehen gelassen. Eine 01 oder eine andere Bezeichnung bekomme ich in die Köpfe nicht rein. Man sieht ja schon das die Möglichen eingaben so versucht werden über das Makro zu Standardisieren.

If ActiveDocument.Bookmarks("Text59").Range.Text = "1" Or (ActiveDocument.Bookmarks("Text59").Range.Text = "1a") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "1b") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "1c") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "1A") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "1B") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "1C") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "Haus1") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "Haus 1") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "H1") Then
ActiveDocument.SaveAs H1 & Datei
MsgBox "Das Dokument wurde für die Kostenstelle 1 verarbeitet"
End If

Grüße Jörg
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Get-Aduser - If then else??? (2)

Frage von MuHMuH zum Thema Batch & Shell ...

Visual Studio
gelöst Vb.net raw string in xdocument einfügen (6)

Frage von Herbrich19 zum Thema Visual Studio ...

Visual Studio
gelöst VB bestimmte Stelle im Bild highlighten wenn MouseOver Textbox? (9)

Frage von PixL86 zum Thema Visual Studio ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte