Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
972to976
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
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Automatisch Werte eintragen

Automatisch Werte eintragen
25.04.2008 13:49:00
Bernd
Hallo,
ich moechte gerne auf "Knopfdruck", dass in eine bestimmte Zelle eines bestimmten Registerblattes (z. B. "Test") ein bestimmter Wert geschrieben wird.
Die Position dieser Zelle soll sich danach bestimmten, ob in Spalte A dieses Registerblattes ein bestimmter Suchwert steht.
Das Makro sollte also den Suchwert finden und dann einfach eine vorgegebene Anzahl von Spalten nach rechts "springen" und einen ebenfalls vorgegebenen Wert eintragen.
Das Makro sollte zudem erweiterbar sein, d. h. wenn ich möchte gerne weitere Werte eintragen lassen.
Als Muster habe ich eine Datei beigefügt!
https://www.herber.de/bbs/user/51866.xls
Viele Grüße
Bernd

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisch Werte eintragen
25.04.2008 14:26:37
Renee
Hi Bernd,
Dieses Makro legst du in einem Modul ab und kannst es dann deinem "Knopf" zuordnen.

Sub SucheUndEintrag()
Dim tSucheUndEintrag As String
Dim tSuche
Dim lRow As Long
tSucheUndEintrag = InputBox("Geben Sie den Such- und Eintragewert" & _
"dieser Syntax ein: Suchwert;Eintrag ", _
"Suchen und Eintragen", "Suchwert;Eintrag")
If InStr(tSucheUndEintrag, ";") > 1 Then
tSuche = Split(tSucheUndEintrag, ";")
On Error Resume Next
lRow = Application.WorksheetFunction.Match(tSuche(0), _
ThisWorkbook.Sheets("Test").Range("A:A"), 0)
On Error GoTo 0
If lRow = 0 Then
MsgBox "Sorry [" & tSuche(0) & "] nicht gefunden!", _
vbOKOnly + vbExclamation, "Suchen"
Exit Sub
Else
ThisWorkbook.Sheets("Test").Cells(lRow, 6).Value = tSuche(1)
End If
End If
End Sub


GreetZ Renée

Anzeige
AW: Automatisch Werte eintragen
25.04.2008 14:40:38
UweD
Hallo
hier ein Beispiel,
- rechtsclick auf den Tabellenblattreiter unten
- Code anzeigen
- Tabelle1 (Test).... dort Code reincopieren
Bei Änderungen innerhalb von A1:A100
wird direkt bei Eingabe / Änderung der Wert eingetragen

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A100")) Is Nothing Then
Dim W
Select Case Target
Case "A"
W = 15
Case "B"
W = 12
Case "C"
W = 22
'Case usw.
Case Else
W = "?"
End Select
Target.Offset(0, 5) = W
End If
End Sub


Gruß UweD

Anzeige
AW: Automatisch Werte eintragen
30.04.2008 11:30:00
Bernd
Hallo zusammen,
zunächst danke für die hilfreichen Antworten!
Da die Eingaben täglich identisch sind, wäre Renée's Lösung für mich eher unkomfortabel, da ich die dort meine Änderungen täglich wiederholt eingeben müsste.
Bei Uwe's Lösung könnte ich den Code selbst leicht erweitern. Mir wäre es aber lieber, dass das Makro nicht automatisch abläuft, sondern ich es selbst starten kann. Was muss ich am Code noch ändern?
Viele Grüße
Bernd

AW: Automatisch Werte eintragen
30.04.2008 11:30:00
Bernd
Hallo zusammen,
zunächst danke für die hilfreichen Antworten!
Da die Eingaben täglich identisch sind, wäre Renée's Lösung für mich eher unkomfortabel, da ich die dort meine Änderungen täglich wiederholt eingeben müsste.
Bei Uwe's Lösung könnte ich den Code selbst leicht erweitern. Mir wäre es aber lieber, dass das Makro nicht automatisch abläuft, sondern ich es selbst starten kann. Was muss ich am Code noch ändern?
Viele Grüße
Bernd

Anzeige
AW: Automatisch Werte eintragen
30.04.2008 12:10:00
Renee
Hi Bernd,
...sondern ich es selbst starten kann. Was muss ich am Code noch ändern?
Dann ersetze Uwe's Code, durch diesen (gehört ebenfalls in die Tabelle "Test"):

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column > 1 Or Target.Count > 1 Then Exit Sub
Dim W
Select Case Target
Case "A"
W = 15
Case "B"
W = 12
Case "C"
W = 22
'Case usw.
Case Else
W = "?"
End Select
If W  "" Then
Target.Offset(0, 5) = W
Cancel = True
End If
End Sub


Gestartet wird der Code jeweils einer Zelle mit dem Suchbegriff (Spalte A) mit einem Doppelklick.
GreetZ Renée

Anzeige
AW: Automatisch Werte eintragen
08.05.2008 12:17:00
Bernd
Hallo Renée,
komme leider jetzt erst zur Antwort. Ich habe den Code wie angegeben reinkopiert, aber anschließend passiert überhaupt nichts, wenn ich irgendeine Zelle anklicke...
Ehrlich gesagt wäre es völlig ausreichend, wenn ich bestimmte Suchwerte im Code vorgebe und wenn diese Werte in der entsprechenden Spalte gefunden werden, dann sollte diese einfach durch im Code vorgegebene Werte ersetzt werden. Gestartet soll das ganze Makro durch manuellen "Knopfdruck" oder über "Extras/Makros/....
Wenn dann ein neuer "Ersetzvorgang" dazukommt, dann wäre es für mich ok, wenn ich den Code um ein paar Zeilen manuell erweitere.
Viele Grüße
Bernd

Anzeige
DOPPELKlick (owT)
08.05.2008 12:23:41
Renee

AW: DOPPELKlick (owT)
08.05.2008 12:47:00
Bernd
Hi,
das mit dem DoppelKlick habe ich kapiert, aber ich muss doch im Prinzip jedesmal die Suchzelle selbst finden und dort dann den Doppleklick ausführen. Ist es nicht möglich, dass ich mir das ersparen kann?
Gruß
Bernd

Begriffe ersetzen!
08.05.2008 13:10:00
Renee
Hallo Bernd,
Tut mir leid, ich kann dir überhaupt nicht mehr folgen.
Den ersten Vorschlag hast du (vermutlich zu Recht) wegen aufwändiger Eingabe abgelehnt.
Den zweiten von Uwe fandest du gut, wolltest ihn aber nicht automatisch, sondern selber starten.
Mein Vorschlag tut das (Selber doppelklicken!)...
Vielleicht kannst du nochmals deine Anforderungen verdeutlichen. Die Beispielmappe gibt leider gar nix her, dass irgendwie helfen könnte zu verstehen was du willst.
GreetZ Renée

Anzeige
AW: Begriffe ersetzen!
08.05.2008 14:35:00
Bernd
Hallo Renée,
ich versuche nochmal mein Anliegen zu verdeutlichen, auch unter Bezugnahme auf Deinen Vorschlag.
Also:
Ich möchte gerne, dass bestimmte Daten einer großen Tabelle (mit ca. 500 Zeilen und ca. 30 Spalten), die ich täglich beziehe, durch modifzierte Daten ersetzt werden. Die modifizierten Werte sind dabei immer identisch, Tag für Tag. Wenn ich nun Deine Lösung richtig verstehe und anwende, dann muss ich manuell in die Spalte A der jeweiligen Zeile springen, doppelklicken und dann wird der Wert in Spalte Y z. B. durch den im Code hinterlegten Wert ersetzt. Wenn ich nun aber z. B. 4 Modifikationen vornehmen möchte, dann muss ich doch in Spalte A jeweils manuell die entsprechende Zeile suchen und dann Doppelklicken, oder?
Wenn dies wirklich so sein sollte, dann stellt sich mir doch die Frage, ob der Code nicht selbständig in Spalte A suchen kann und dann die entsprechenden Modifikationen in Spalte Y vornehmen kann und zwar für alle 4 Änderungswünsche nacheinander. Ich würde mir dadurch doch die manuelle Suche in Spalte A ersparen und den Doppelklick!
Nach was gesucht in A gesucht wird, also der Schlüsselwert, ist mir natürlich bekannt!
Ich hoffe, ich konnte ein wenig klarer ausdrücken, was mir vorschwebt!
Viele Grüße
Bernd

Anzeige
AW: Begriffe ersetzen!
08.05.2008 15:07:00
Renee
Hi Bernd,
Ok, ich hab den Code jetzt so modifiziert.
Er wird nur gestartet, wenn in der Zelle A1 ein doppelklick gemacht wird.
Er durchsucht die Ganze Spalte A nach den Suchbegriffen und schreibt in Spalte F auf der gleichen Zeile jeweils die Werte rein.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim W
Dim rC As Range
If Target.Address  "$A$1" Then Exit Sub
Cancel = True
For Each rC In Me.Range("A2:A" & Me.Range("A" & Me.Rows.Count).End(xlUp).Row)
Select Case rC.Value
Case "Bereich"
W = 15
Case "B"
W = 12
Case "C"
W = 22
'Case usw.
Case Else
W = "?"
End Select
If W  "" Then rC.Offset(0, 5) = W
Next
End Sub


Ist es etwas das ?
GreetZ Renée

Anzeige
AW: Begriffe ersetzen!
08.05.2008 15:31:00
Bernd
Hallo Renée,
jetzt sieht es schon sehr gut aus! Nur noch eine Kleinigkeit:
Wenn ich auf Zelle A1 doppelklicke, dann werden in Spalte F, standardmäßig ein "?" gesetzt. Dass sollte so nicht sein, falls explizit kein Wert im Code vorgegeben wird, dann sollte die Spalte F auch nicht befüllt werden, sondern unverändert bleiben.
Viele Grüße
Bernd

AW: Begriffe ersetzen!
08.05.2008 15:35:02
Renee
Hallo Bernd,
Lösch einfach die beiden ? so das dort nur noch steht: W = ""
GreetZ Renée

Perfekt, vielen Dank!
08.05.2008 16:53:00
Bernd
Hallo Renée,
super, jetzt klappt es!
Ich werde es in den nächsten Tagen ausgiebig an der "Echttabelle" ausprobieren, falls noch Probleme auftreten, melde ich mich nochmals!
Auf jeden Fall, schon mal vielen Dank für die kompetente Hilfe!
Grüsse
Bernd

Anzeige
Nachfrage
20.04.2009 13:19:47
Bernd
Hallo,
ich hätte nochmal eine Ergänzungsfrage. Ich würde den Ersetzvorgang nicht über Doppelklick in Zelle A1 im betreffenden Sheet starten, sonder über eine Art zentrales "Steuersheet". Die Werte sollten dann wie gehabt im gewünschten Sheet ersetzt werden.
Wie würde der Code dann lauten?
Viele Grüße
Bernd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige