Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
vba Formatierung string und variabler string
20.06.2019 09:15:11
Markus
Hallo an alle,
ich bedanke mich nochmals bei Euch betreffend des Abfangen des Laufzeitfehlers 13. Es funktioniert hervorragend mit EnableEvents...
Ein neues Problem tut sich mir bei der vba Formatierung von Feldern auf.
Ich möchte wissen, wie man einem Range am geeignetsten die Eigenschaft String zuordnet und wie man ein varialbes Eingabefeld gestaltet mittels vba Code.
z.B. 12345HH00xxxxx, oder 12345HH0000xxx, wober man nur die Endziffern x eingeben muss.
Ich habe da an eine IF Then Anweisung gedacht, aber bei Stringlänge mit Variable stoße ich an meine Grenzen :-I...
Ich lade mal eine Bsp.Datei mit hoch und hoffe Ihr könnt nochmal helfen...
Danke...
Markus
https://www.herber.de/bbs/user/130502.xlsm

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba Formatierung string und variabler string
20.06.2019 09:21:47
Hajo_Zi
Hallo Markus,
"ich möchte wissen, wie man einem Range am geeignetsten die Eigenschaft String"
.numberformat.
benutze Makrorecorder.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: vba Formatierung string und variabler string
20.06.2019 10:14:32
Hajo_Zi
Hallo Markus,
Deine UserForm oder Inputbox konnte ich nicht finden.
Option Explicit
Sub Eingabe()
Dim StWert As String
Dim StEingabe As String
StWert = "12345HH00"
Do
StEingabe = InputBox("Eingabe 4 Zeichen", "Bereich", StWert)
If Left(StEingabe, Len(StWert)) = StWert _
And Len(StEingabe) = 13 Then
Exit Do
Else
MsgBox "Falsche Eingabe"
End If
Loop
End Sub
Gruß Hajo
Anzeige
AW: vba Formatierung string und variabler string
20.06.2019 18:53:28
Markus
Du wirst lachen, aber manchmal ist der einfachste Weg der beste. Dein Tipp mit dem Makrorekorder war Gold wert. Ich habe mir dann eben den Code genommen und entsprechend verarbeitet! Danke :-)
Vielleicht hast Du noch einen Tipp wie ich bei Target.NumberFormat = "General" mit dem Blattschutz umgehe?
Mit meiner bewährten Lösung: ActiveSheet.Unprotect Passwort:="..." bekomme ich immer den 1004...
(sag ja, vba Ktn bescheiden, aber ich aber dran...)
Gruß Markus
AW: vba Formatierung string und variabler string
20.06.2019 19:37:46
Werner
Hallo Markus,
das heißt auch
Password:=

und nicht
Passwort:=
Gruß Werner
Anzeige
AW: vba Formatierung string und variabler string
20.06.2019 19:39:58
Markus
Danke, Danke... Aber das hilft nicht... im Code habe ich es schon richtig... passiert schonmal nach ewigem Monitoring...
AW: vba Formatierung string und variabler string
20.06.2019 19:40:48
Markus
...sonst würde ich ja auch keinen 1004 bekommen...
AW: vba Formatierung string und variabler string
20.06.2019 19:45:19
Werner
Hallo Markus,
und wie dein Code aktuell aussieht soll hier jetzt jemand erraten? Und in welcher Codezeile der Fehler auftritt auch?
Also bitte zeig wenigstens deinen Code, noch besser ist wenn du deine Mappe hier hochlädtst.
Gruß Werner
AW: vba Formatierung string und variabler string
20.06.2019 19:53:27
Markus
Hallo Werner,
du hast recht... Ich werde die Bsp.Datei mit Blattschutzanweisung (Versuch) gleich nochmal hochladen...
Gruß Markus
AW: vba Formatierung string und variabler string
20.06.2019 20:01:40
Markus

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MekZellSt As String
Target.NumberFormat = "General"
If Intersect(Target, Range("G4:J16")) Is Nothing Or (InStr(Target.Text, ".") > 0) Then  _
Exit Sub
ActiveSheet.Unprotect.Password = "xxx"  'hier ist das Problem beim kompilieren
Application.EnableEvents = False
If Len(Target) = 5 Then
Target = _
CDate(Format(CDate(Mid(Target, 1, 1) & "." & _
Mid(Target, 2, 2) & "." & _
Mid(Target, 4, 2)), "dd.mm.yyyy"))
ElseIf Len(Target) = 6 Then
Target = _
CDate(Format(CDate(Mid(Target, 1, 2) & "." & _
Mid(Target, 3, 2) & "." & _
Mid(Target, 5, 2)), "dd.mm.yyyy"))
ElseIf Len(Target) = 7 Then
Target = _
CDate(Format(CDate(Mid(Target, 1, 1) & "." & _
Mid(Target, 2, 2) & "." & _
Mid(Target, 4, 4)), "dd.mm.yyyy"))
ElseIf Len(Target) = 8 Then
Target = _
CDate(Format(CDate(Mid(Target, 1, 2) & "." & _
Mid(Target, 3, 2) & "." & _
Mid(Target, 5, 4)), "dd.mm.yyyy"))
ActiveSheet.Protect.Password = "xxx"  'habs auch außerhalb der Schleife versucht...  _
immer wieder 1004
End If
Range("G6:J6").NumberFormat = "#,##0.00 €"
Range("G12:J12").NumberFormat = "#,##0.00 €"
Range("H14").NumberFormat = "#####00000"
Application.EnableEvents = True
End Sub
https://www.herber.de/bbs/user/130508.xlsm
Anzeige
AW: vba Formatierung string und variabler string
20.06.2019 20:14:28
Daniel
Hi
du muss da schon auf die korrekt Syntax achten.
"Unprotect" ist kein Objekt sondern eine Anweisung und "Passwort" ist keine Eigenschaft dieses "Objektes" sondern einer von mehreren Parametern der Anweisung.
verwende man benannte Parameter, so ist die Trennung zwischen Parametername und Wert immer ":="
 ActiveSheet.Protect Password:= "xxx" 
Gruß Daniel
AW: vba Formatierung string und variabler string
21.06.2019 12:52:13
Markus
Hallo Daniel,
Danke für den Hinweis... Den Fehler bekomme ich dennoch nicht weg...
Gruß Markus
AW: vba Formatierung string und variabler string
21.06.2019 12:56:55
Werner
Hallo,
dann lad deine Datei mit dem Code hier hoch.
Gruß Werner
Anzeige
AW: vba Formatierung string und variabler string
21.06.2019 18:56:29
Werner
Hallo Markus,
ich habe den Code mal etwas überarbeitet.
Wenn du die Events ausschaltest, dann solltest du immer mit einer Fehlerbehandlung arbeiten bei der auf alle Fälle die Events auch wieder eingeschaltet werden.
Zudem sollten Variablen, die mit Set gefüllt wurden, auch wieder geleert werden.
Teste mal.
https://www.herber.de/bbs/user/130528.xlsm
Gruß Werner
Anzeige
AW: vba Formatierung string und variabler string
22.06.2019 12:17:57
Markus
Hallo Werner, ich habe es erst jetzt gesehen :-)
Ich gugg gleich mal rein, Daniels Lösung hat mir auch geholfen, aber wie gesagt, ich lerne gern dazu!
Gruß Markus
Hier reicht es dann...
22.06.2019 09:36:35
Werner
Hallo Markus,
...wohl nicht mehr für eine Rückmeldung - alles im neuen Beitrag - schade.
Gruß Werner
AW: Hier reicht es dann...
22.06.2019 12:20:58
Markus
...Verzeihung :-I
werd mich wohl noch besser mit den Regeln beschäftigen müssen :-I
aber ja, so funktioniert es auch...
Gerne. o.w.T.
22.06.2019 13:54:26
Werner

394 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige