Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
804to808
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
804to808
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inputbox bei Aktivierung einer Zelle
05.10.2006 09:07:03
Ingo
Hallo zusammen,
ich möchte in einer Liste eine Inputbox aktivieren, sobald ein Wert in eine Zelle einer bestimmten Spalte eingetragen wird. Die Werte, die in die Inputbox eingetragen werden, sollen dann in weiteren Zellen der Zeile eingetragen werden. Mit welchem Befehl kann man eine Inputbox bei Aktivierung der Zelle aufrufen?
Danke und Gruß,
Ingo

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inputbox bei Aktivierung einer Zelle
05.10.2006 10:11:36
UweD
Hallo
- rechtsclick auf den Tabellenblattreiter unten
- Code anzeigen
- im neuen Fenster rechts den Code reinkopieren
Bei jeder Änderung der Zelle (nach Enter)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Eingabe$
If Not Intersect(Target, Range("A:A")) Is Nothing Then
On Error GoTo Fehler
Eingabe = InputBox("Bitte Wert eintragen", "Eingabe über Inputbox")
Application.EnableEvents = False
'Inputbox in aktuelle Zelle schreiben
Target = Eingabe
'in weitere Zellen eintragen(Beispiel B bis E in der Zeile)
Range(Cells(Target.Row, 2), Cells(Target.Row, 5)) = Eingabe
End If
Fehler:
If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
Application.EnableEvents = True
End Sub

soll die Box bereits vor der Eingabe in die Zelle erfolgen dann so (erste Zeile ist anders)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Eingabe$
If Not Intersect(Target, Range("A:A")) Is Nothing Then
On Error GoTo Fehler
Eingabe = InputBox("Bitte Wert eintragen", "Eingabe über Inputbox")
Application.EnableEvents = False
'Inputbox in aktuelle Zelle schreiben
Target = Eingabe
'in weitere Zellen eintragen(Beispiel B bis E in der Zeile)
Range(Cells(Target.Row, 2), Cells(Target.Row, 5)) = Eingabe
End If
Fehler:
If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
Application.EnableEvents = True
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
Ergänzung
05.10.2006 10:17:39
UweD
Hallo
wenn du mehrere Zellen markierst werden die Werte nun auch in alle Zeilen übertragen.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Eingabe$, Anz%
If Not Intersect(Target, Range("A:A")) Is Nothing Then
Anz = Target.Count
On Error GoTo Fehler
Eingabe = InputBox("Bitte Wert eintragen", "Eingabe über Inputbox")
Application.EnableEvents = False
'Inputbox in aktuelle Zelle schreiben
Target = Eingabe
'in weitere Zellen eintragen(Beispiel B bis E in der Zeile)
Range(Cells(Target.Row, 2), Cells(Target.Row + Anz - 1, 5)) = Eingabe
End If
Fehler:
If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
Application.EnableEvents = True
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: Ergänzung
05.10.2006 11:09:08
Ingo
Hallo Uwe,
danke für den Code, klappt schon ganz gut. Jetzt noch eine Frage: Ich habe ein Formular mit mehreren Eingabeoptionen in Form von Optionsbuttons gebastelt. Wie bekomme ich es hin, dass dieses Formular dann anstelle der InputBox erscheint? Problem bei der Inputbox ist, dass ich nur einen Wert für mehrere Zellen eingeben kann. Ich möchte aber, z.B. in die Spalten E, F, G und H verschieden Werte eingeben, die auch teilweise definiert sind, d.h. in Spalte F z.B. Freitext, in G und H verschiedene Auswahlmöglichkeiten, je nachdem welcher Wert in der aktiven Spalte/Zelle eingegeben wird. Wie ersetze ich die Inputbox durch mein selbst gebasteltes Formular?
nochmal zur Erläuterung:
In Spalte D gebe ich eine Auftragsnummer ein, in Spalte E erscheint daraufhin der Kunde, in Spalte F soll das Thema als Freitext eingegeben werden und Spalte G & H sind Werte, die über einen SVerweis anhand der Auftragsnummer "gezogen" werden. Die ganzen Auswahlmöglichkeiten habe ich jetzt schon in einer UserForm festgelegt. Nun soll diese nur noch aktiviert werden, wenn ich die Auftragsnummer in Spalte D eingebe.
Gruß
Ingo
Anzeige
AW: Ergänzung
05.10.2006 11:15:24
UweD
Hallo
so?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
UserForm1.Show
End If
End Sub

Gruß UweD
(Rückmeldung wäre schön)
AW: Ergänzung
05.10.2006 13:16:18
Ingo
Hallo Uwe,
danke, klappt super!
AW: Inputbox bei Aktivierung einer Zelle
05.10.2006 10:19:13
EtoPHG
Hallo Ingo,
Diesen Code (als Beispiel und nach ev. Anpassung) in das gewünschte Tabelleblatt eintragen:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const sSpalte = 7                   'Beispiel Spalte 7 [G]
Const sEintragSpalte = -3           'Beispiel Eintrag in Spalte 7 - 3 = 4 [D]
Dim vInput As Variant
If Target.Column <> 7 Then Exit Sub
vInput = InputBox("Was wolln's denn in Spalte-D schreiben ", "Eingabe", "irgendwas")
If vInput = vbCancel Or vInput = "" Then
Exit Sub
Else
Target.Offset(0, sEintragSpalte).Value = vInput
End If
End Sub

Gruss Hansueli
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige