Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
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

MsgBox

MsgBox
09.09.2018 11:57:13
Taege
Hallo,
dass man in einer MsgBox keine Texte formatieren kann,
musste ich leider schon erfahren. Geht nur über UserForm.
Aber mir ist noch ein anderes Problem über den Weg gelaufen.
Ich möchte eine unterschiedliche Anzahl von TABs ("Chr(9)")
in Abhängigkeit von der Länge eines davorliegenden Text einbauen.
Über die Länge ("len(aa)") scheint es nicht zu gehen.
Hängt es vom Text-Font ab (ungleiche Breite der Buchstaben)?
A) Für die Umlaut-Verfälschung im unteren Beispiel kann ich nichts,
hängt mit der Differenz zwischen UNIX und Microsoft zusammen.
B) Leider kann ich das Ergebnis nicht als Screenshot hier einfügen.
Sollte mal ein Denkanstoß für das Herber-Forum sein.
C) Das untere Beispiel ist ein WORD-Makro, gilt aber auch für EXCEL.
Hier mein zusammengeklau(b)tes und selbst geändertes Beispiel:

Sub ListModul()
' 28.01.18 aktualisiert
' Diese Prozedur listet, in einer(!) MsgBox, alle Module in ActiveDocument auf.
' Es wird die Funktion mit dem Namen fkt_CTTN verwendet,
' um eine Textbeschreibung vom Typ des Modul zu erhalten.
' 06.07.18 ?berarbeitet
' 09.09.18 Anzahl der TAB abh?ngig von der L?nge des Namens gemacht
'          Funktioniert nicht sauber,
'          scheint von dem Schrift-Typ in der MsgBox abzuh?ngen
' VBProject
Dim VBProj As VBProject
Set VBProj = ActiveDocument.VBProject
' VBComponent
Dim VBComp As VBComponent
modul_nam = "NewMacros"                                       ' nicht notwendig
Set VBComp = ActiveDocument.VBProject.VBComponents(modul_nam) ' nicht notwendig
' CodeModule
Dim VBCodeMod As CodeModule
Set VBCodeMod = ActiveDocument.VBProject.VBComponents(modul_nam).CodeModule ' nicht notwendig
len_nam_max = 0
debug_mode = 0
my_msg = "Auflistung aller Module des Word-Dokumentes:" & Chr(10) & Chr(10)
For Each VBComp In ActiveDocument.VBProject.VBComponents
VBC_nam = VBComp.Name
len_nam = Len(VBC_nam)
If len_nam_max  8 And len_nam 

Function fkt_CTTN(VBComp) As String ' VBComp As VBComponent
' 28.01.18 aktualisiert
' fr?herer Name: "CompTypeToName" jetzt: "fkt_CTTN"
' geh?rt zum Makro ListModules
Select Case VBComp.Type
Case vbext_ct_ActiveXDesigner
fkt_CTTN = "ActiveX Designer"
Case vbext_ct_ClassModule
fkt_CTTN = "Class Module"
Case vbext_ct_Document
fkt_CTTN = "Document"
Case vbext_ct_MSForm
fkt_CTTN = "MS Form"
Case vbext_ct_StdModule
fkt_CTTN = "Standard Module"
Case Else
End Select
End Function

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox
09.09.2018 12:04:09
Hajo_Zi
ist es der falsche Code?
da steht nicht " ("len(aa)")
was auc richtig so lauten würde
len(aa)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: MsgBox
09.09.2018 12:42:59
Taege
Danke Hajo_Z,
aber das "aa" steht nur als Synonym für einen beliebige Text (String)
Im Beispiel ist der akkurate Befehl "len_nam = Len(VBC_nam)" enthalten.
Ich wollte nur darauf hinweisen, dass die Anzahl der Zeichen nicht verwendet werden kann.
Die beiden Texte "B_Check" und "E_Start" haben die gleiche Länge,
aber werden anders dargestellt. (siehe Upload-JPEG)
Anzeige
AW: MsgBox
09.09.2018 12:49:13
Hajo_Zi
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Du hast den Zugriff auf das VBA Projekt zugelassen?
Zum Code Änderung muss Zugriff auf das VBA Projekt zugelassen werden.
Da dies tief in die Sicherheit geht, gebe ich dazu keine Auskunft.
Gruß Hajo
Anzeige
AW: MsgBox
09.09.2018 13:13:43
Taege
Danke Hajo,
A) Das Makro ist ein WORD-Makro.
Es funktioniert mit jeder stinknormalen Word-Datei, die Makros enthält.
Kannst Du das Makro nicht sehen?
B) Ich habe das Ergebnis-Bild hochgeladen.
Aber es wurde wohl nicht automatisch an meine letzte Nachricht angehangen.
Habe wohl eine weitere notwendige Aktion nicht durchgeführt. (zusätzliche Freigabe?)
Ich versuche es noch einmal. Hatte den Link nicht eingetragen, ABER JETZT.
Wie gesagt die Modul-Namen: "B_Check" und "E_Start" haben die gleiche Zeichenanzahl (nämlich = 7)
reagieren aber in der MsgBox unterschiedlich.
Vom Auge her, sehen sie auch unterschiedlich lang aus (FONT?).
Userbild
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige