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

2 Fragen zu Makro ohne select, btw. Großschreibung

2 Fragen zu Makro ohne select, btw. Großschreibung
25.10.2017 12:09:38
Kalle
Hallo an alle VB-Fachleute,
Habe ein funktionierendes Makro - siehe unten - dass nur Kürzel aus zwei Listen zulässt. Suche nun schon seit Stunden mit meinen bescheidenen VB-Kenntnissen ergebnislos nach einer Lösung.
1. Was mich daran stört, ist das bei der .select-Methode, nach Ablauf des Makros der Bereich aus der zweiten Hälfte des Makros immer noch markiert ist.
Geht das auch ohne .select, so dass idealerweise die letzte bearbeitete Zelle aktiv bleibt?
Habe gelesen, dass select fast nie notwendig wäre - aber wie geht's?
2. Wie integriere ich in das gleiche Makro, dass auch gültige manuelle Einträge in Zellen dieses Bereiches automatisch sofort nach Eingabe mit der Funtion UCase in Großbuchstaben umgewandelt werden?
Viele liebe Grüße an alle Helfer des Forums. Und schon mal ein dickes Dankeschön!
Sub Gueltigkeit()
Range( _
"H8:AL8,H10:AL10,H12:AL12,H14:AL14,H16:AL16,H18:AL18,H20:AL20,H22:AL22,H24:AL24,H26:AL26, _
H28:AL28,H30:AL30,H32:AL32" _
).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=KürzelfürDienste"
.IgnoreBlank = True
.InCellDropdown = True
.ErrorTitle = "falsches Kürzel!"
.ErrorMessage = _
"Bitte nur Werte aus der Liste Daten benutzen oder Pulldownmenü verwenden"
.ShowError = True
End With
Range( _
"H9:AL9,H11:AL11,H13:AL13,H15:AL15,H17:AL17,H19:AL19,H21:AL21,H23:AL23,H25:AL25,H27: _
AL27,H29:AL29,H31:AL31,H33:AL33" _
).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=KürzelfürAusfälle"
.IgnoreBlank = True
.InCellDropdown = True
.ErrorTitle = "falsches Kürzel!"
.ErrorMessage = _
"Bitte nur Werte aus der Liste Daten benutzen oder Pulldownmenü verwenden"
.ShowError = True
End With
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Fragen zu Makro ohne select, btw. Großschreibung
25.10.2017 12:19:18
Nepumuk
Hallo,
ohne Select:
Sub Gueltigkeit()
    
    With Range("H8:AL8,H10:AL10,H12:AL12,H14:AL14,H16:AL16,H18:AL18,H20:AL20," & _
            "H22:AL22,H24:AL24,H26:AL26,H28:AL28,H30:AL30,H32:AL32 ").Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=KürzelfürDienste"
        .IgnoreBlank = True
        .InCellDropdown = True
        .ErrorTitle = "falsches Kürzel!"
        .ErrorMessage = _
            "Bitte nur Werte aus der Liste Daten benutzen oder Pulldownmenü verwenden"
        .ShowError = True
    End With
    
    With Range("H9:AL9,H11:AL11,H13:AL13,H15:AL15,H17:AL17,H19:AL19,H21:AL21," & _
            "H23:AL23,H25:AL25,H27:AL27,H29:AL29,H31:AL31,H33:AL33").Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=KürzelfürAusfälle"
        .IgnoreBlank = True
        .InCellDropdown = True
        .ErrorTitle = "falsches Kürzel!"
        .ErrorMessage = _
            "Bitte nur Werte aus der Liste Daten benutzen oder Pulldownmenü verwenden"
        .ShowError = True
    End With
End Sub

Gruß
Nepumuk
Anzeige
Frage 2 vergessen
25.10.2017 12:29:49
Nepumuk
Hallo nochmal,
das funktioniert nicht denn die Datenüberprüfung schlägt vor jedem Makro zu und meckert die kleingeschriebenen Werte an.
Gruß
Nepumuk
AW: Frage 2 vergessen
25.10.2017 13:10:13
Kalle
Hallo Nepomuk,
erstmal vielen Dank für die prompte Antwort.
Allerdings wird die Prozedur in der Zeile
.Add Type:=xlValidateList, Formula1:="=KürzelfürAusfälle"
im zweiten Abschnitt mit Laufzeitfehler 1004 unterbrochen.
Der erste Teil funktioniert. Der Name und der Bezug von KürzelfürAusfälle habe ich überprüft. Der stimmt!
Hast Du noch eine Idee?
Sub Worksheet_Change(ByVal Target As Excel.Range)
Worksheets("Daten").Unprotect
With Range("H8:AL8,H10:AL10,H12:AL12,H14:AL14,H16:AL16,H18:AL18,H20:AL20," & _
"H22:AL22,H24:AL24,H26:AL26,H28:AL28,H30:AL30,H32:AL32 ").Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=KürzelfürDienste"
.IgnoreBlank = True
.InCellDropdown = True
.ErrorTitle = "falsches Kürzel!"
.ErrorMessage = _
"Bitte nur Werte aus der Liste Daten benutzen oder Pulldownmenü verwenden"
.ShowError = True
End With
With Range("H9:AL9,H11:AL11,H13:AL13,H15:AL15,H17:AL17,H19:AL19,H21:AL21," & _
"H23:AL23,H25:AL25,H27:AL27,H29:AL29,H31:AL31,H33:AL33").Validation
.Delete
 .Add Type:=xlValidateList, Formula1:="=KürzelfürAusfälle" 'hier der  _
Laufzeitfehler
.IgnoreBlank = True
.InCellDropdown = True
.ErrorTitle = "falsches Kürzel!"
.ErrorMessage = _
"Bitte nur Werte aus der Liste Daten benutzen oder Pulldownmenü verwenden"
.ShowError = True
End With
Worksheets("Daten").Protect
End Sub

Anzeige
AW: Frage 2 vergessen
25.10.2017 13:12:29
Nepumuk
Hallo Kalle,
ohne die Mappe kann ich dir leider nicht sagen woran es liegt. kannst du eine Mustermappe hochladen?
Gruß
Nepumuk
AW: Frage 2 vergessen
25.10.2017 15:20:36
Kalle
Hallo Nepomuk,
hab die ganze Zeit versucht das noch selbst hinzukriegen. Aber jetzt geb ich auf und nehme Dein Angebot an.
Anbei die Mustermappe nur mit dem Januar und schon ein ganz herzliches Dankeschön fürs
Geht natürlich weiter bis Dezember. aber das funktioniert alles.
Ich brauche nur die zwei unterschiedlichen Gültigkeiten. Alle Kürzel sollten in Großbuchstaben im Plan erscheinen und alle Blätter sollten bis auf die Eingabebereiche auch geschützt sein. Hab ich schon vorbereitet.
Deshalb nach jedem Schließen eines Blattes .protect
Der User hat zwar etwas Excel-Erfahrung und sollte ohne Passwort auch mal in den gesperrten Bereich gelangen können!Sicherungskopie wird automatisch erstellt.
Bitte beachte: Datei sollte auch unter Excel97-2003 laufen.
Hab sie nur in der höheren Version hochgeladen, damit ich auf unter 300 kB komme.
Falls das klappt, wie könnte ich Dir dann danken?
Herzliche Grüße aus der Kurpfalz
https://www.herber.de/bbs/user/117215.xlsm
Anzeige
AW: Frage 2 vergessen
25.10.2017 15:44:24
Nepumuk
Hallo Kalle,
ich finde in deiner Mappe einen Namen: KürzelFürKrank aber keinen KürzelfürAusfälle
Kann es daran liegen?
Gruß
Nepumuk
AW: Frage 2 vergessen
25.10.2017 15:57:59
Kalle
Ja das ist es wahrscheinlich - hab den Namen wahrscheinlich falsch abgeschrieben. Wie Blöd.
Ich probier es heute Abend nochmal - muss jetzt weg.
Userbild
Ich melde mich, wenn`s dann immer noch nicht funktioniert
Viele Grüße und herzlichen Dank
Kalle
AW: Frage 2 vergessen
25.10.2017 23:19:30
Kalle
Hallo Nepomuk,
KürzelfürAusfälle war tatsächlich mit Kürzelfürkrank verwechselt. Wegen diesem primitiven Fehler bin ich fast wahnsinnig geworden.
Jetzt ist alles bestens - alle Probleme gelöst. Funktioniert alles einwandfrei.
Habe sogar noch einen Code von Hajo.Ziplies gefunden, der mir auch die manuellen Einträge in Großbuchstaben umwandelt - ohne Konflikte mit den Gültigkeitsregeln zu verursachen.
Also wenn wir uns je mal treffen sollten: Du hast einige Biere gut! ;-)
Nochmals ganz herzliche Dank und viele Grüße.
Private Sub Worksheet_Change(ByVal Target As Range)
'* H. Ziplies                                     *
'* 16.08.03                                       *
'* erstellt von Hajo.Ziplies@web.de               *
'* http://Hajo-Exce.de/
'   alle Buchstaben Groß in einem bestimmten Bereich
Dim RaBereich As Range, RaZelle As Range
Application.EnableEvents = False
'   Bereich der Wirksamkeit
Set RaBereich = Range("H8:AL33")
ActiveSheet.Unprotect
Application.EnableEvents = False
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
RaZelle.Value = UCase(RaZelle.Value)
End If
Next RaZelle
Application.EnableEvents = True
ActiveSheet.Protect
Set RaBereich = Nothing
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige