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

Liste aus Datenüberprüfung aktualisieren

Liste aus Datenüberprüfung aktualisieren
14.07.2016 13:33:20
Sven
Hallo zusammen,
ich habe wieder mal ein Problem, zu dem ich im Netz noch keine richtige Lösung gefunden habe.
Folgendes muss ich realisieren. Es gibt ein Auswahlfeld (Dropdown) welches sich aus einer Liste bedient die in einem anderen Tabellenblatt liegt und folgendermaßen durch vba erstellt wird:
'Auswahlfeld für Gründe einfügen
With wsZiel.Worksheets(district4).Cells(lngLastXX, 9).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="= _
Gründe!$A:$A"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Grund einfügen"
.ErrorTitle = "Fehler beim Grund"
.InputMessage = "Bitte fügen Sie hier den Grund der Laufzeitüberschreitung ein"
.ErrorMessage = "Der Grund der Laufzeitüberschreitung ist nicht in der Liste der bekannten  _
Gründe"
.ShowInput = True
.ShowError = True
End With
Die Liste besteht aus verschiedenen Gründen. Diese Liste wird auch mal erweitert und dann sollen natürlich die neuen Gründe mit erscheinen in der Auswahlliste. Dies funktioniert ja auch ohne Probleme. Wenn ich jetzt aber einen dieser Gründe umbenenne, dann ändert sich dieser Grund nicht in dem Auswahlfeld wo dieser grund schon eingetragen wurde automatisch. Ich müsste dann alle diese Felder wo der Grund schon ausgewählt wurde neu auswählen.
Kann man dies automatisieren mittels VBA? Quasi so, dass wenn ich das Tabellenblatt aufrufe, wo diese Auswahlfelder hinterlegt wurden er die Gründe durch geht und schaut, ob sich da einer verändert hat. Es wäre auch eine Option einen Button zu erstellen, mit Hilfe dessen ich alle Auswahlfelder prüfe und schaue, welches nicht mehr aktuell ist und das dann aktualisiere.
Hat jemand eine Idee für diese Funktionalität?
Vielen Dank im Voraus.
MfG Sven

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Liste aus Datenüberprüfung aktualisieren
16.07.2016 06:46:02
fcs
Hallo Sven,
im Prinzip funktioniert es wie folgt.
Im Blatt "Gründe" wird der zu ändernde Grund ausgewählt.
Danach wird im Zielblatt der alte Grund durch den neuen Grund ersetzt.
Komplizierter wird es, wenn das Zielblatt unterschiedliche Name haben kann. dann muss man sich noch einen Weg überlegen, wie das Zielblatt ausgewähl/vorgegeben werden kann. Evtl. startet man dann im Zielblatt, um einen rund zu ändern.
Das Makro kopierst du in ein allgemeines Modul deiner Datei und weist es einer Schaltfläche (aus den Formular-Steuerelemente) zu, die du auf einem Tabellenblatt einfügst.
Gruß
Franz
Sub AendernGrund()
Dim varAuswahl As Variant
Dim rngGrund As Range
Dim varGrundAlt, varGrundNeu
On Error GoTo Beenden
Dim wksZiel As Worksheet, wksGrund As Worksheet
Set wksGrund = ActiveWorkbook.Worksheets("Gründe")
Set wksZiel = ActiveWorkbook.Worksheets("District4") 'ggf. Blattname anpassen
wksGrund.Activate
AuswahlZelle:
Set rngGrund = Application.InputBox("Bitte Zelle mit zu änderndem Grund auswaählen", _
"Ä N D E R N   G R U N D   -  Z E L L A U S W A H L", ActiveCell.Address, Type:=8)
If rngGrund.Column = 1 Then
EingabeGrund:
varAuswahl = Application.InputBox("Grund alt: " & rngGrund.Text & vbLf & "Grund neu:",  _
_
"Ä N D E R N   G R U N D", rngGrund.Text, 2)
If varAuswahl = False Then
'Abgebrochen
Else
If varAuswahl = "" Then
MsgBox "Grund darf kein Leertext sein!", vbOKOnly, "Ä N D E R N   G R U N D"
GoTo EingabeGrund
Else
varGrundAlt = rngGrund.Value
rngGrund.Value = varAuswahl
varGrundNeu = varAuswahl
With wksZiel
With .Range(.Cells(2, 9), .Cells(.Rows.Count, 9).End(xlUp))
.Replace What:=varGrundAlt, replacement:=varGrundNeu, lookat:=xlWhole,  _
_
MatchCase:=True
End With
End With
End If
End If
Else
MsgBox "Bitte eine Zelle in Spalte A wählen", vbOKOnly, "Ä N D E R N   G R U N D"
GoTo AuswahlZelle
End If
Beenden:     'Zellauswahl wurde abgebrochen
Set wksZiel = Nothing
Set wksGrund = Nothing
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige