Supportnet / Forum / Tabellenkalkulation
Zahl eingeben, Text erhalten
Frage
Hallo Profis,
ich möchte eine Formel in einer Zelle erstelle, so das ich nur eine Zahl eingeben muß, und ein Name wir eingetragen. Ich habe 6 Namen, und möchte jedem Name eine Zahl zuordnen, so das ich z.B. die Zahl 2 in die Zelle eintrage, und es erscheint
der Name 2. Mein Problem ist, wenn ich z.B. in Zell A1 eintrage, kann ich den Name in Zelle A2 erscheinen lasse. Ich möchte aber, das ich in Zelle A1 die Zahl eintrage, und in Zelle A1 erscheint der Name.
Ein Dank im vorraus, für den der mir helfen kann.
Antwort 1 von Primut
Hi Schrauber,
das funktioniert nur über ein Makro, keine Ahnung, wie weit du dich damit auskennst, ich hab dir mal ein Beispielmakro zurechtgebastelt:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zellbereich As Range
Set Zellbereich = Range("A1")
If Target.Address = Zellbereich.Address Then
Select Case Target
Case 1
Name = "Eins"
Case 2
Name = "Zwei"
Case 3
Name = "Drei"
Case 4
Name = "Vier"
Case 5
Name = "Fünf"
Case 6
Name = "Sechs"
Case Else
Exit Sub
End Select
Cells(1, 1).Value = Name
Else
End If
End Sub
Dieses Makro ist in dem entsprechenden Tabellenblatt einzufügen. Ich hab als entsprechende Zelle A1 genommen, kannst du auch entsprechend ändern, (d.h. bei Cells(Zeilennummer,Spaltenummer)und für die ausgeschrieben Zahlen natürlich die Namen einsetzten.
Wichtig: wenn du in die entsprechende Zelle etwas anderes als die Zahlen 1 - 6 einträgst, wird das einfach übernommen, aber ich denke das sollte erstmal reichen.
Gruß
Primut
das funktioniert nur über ein Makro, keine Ahnung, wie weit du dich damit auskennst, ich hab dir mal ein Beispielmakro zurechtgebastelt:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zellbereich As Range
Set Zellbereich = Range("A1")
If Target.Address = Zellbereich.Address Then
Select Case Target
Case 1
Name = "Eins"
Case 2
Name = "Zwei"
Case 3
Name = "Drei"
Case 4
Name = "Vier"
Case 5
Name = "Fünf"
Case 6
Name = "Sechs"
Case Else
Exit Sub
End Select
Cells(1, 1).Value = Name
Else
End If
End Sub
Dieses Makro ist in dem entsprechenden Tabellenblatt einzufügen. Ich hab als entsprechende Zelle A1 genommen, kannst du auch entsprechend ändern, (d.h. bei Cells(Zeilennummer,Spaltenummer)und für die ausgeschrieben Zahlen natürlich die Namen einsetzten.
Wichtig: wenn du in die entsprechende Zelle etwas anderes als die Zahlen 1 - 6 einträgst, wird das einfach übernommen, aber ich denke das sollte erstmal reichen.
Gruß
Primut
Antwort 2 von OmaDuck
hi Schrauber,
das Makro von primut ist sehr gut so. Als Anmerkung vielleicht noch :
Du kannst auch Zellbezüge (zB in einer anderenTabelle) angeben und dort die Namen eintragen. Da hätte den Vorteil, dass Du leichter Änderungen vornehmen kannst.
Gruß
OmaDuck
das Makro von primut ist sehr gut so. Als Anmerkung vielleicht noch :
Du kannst auch Zellbezüge (zB in einer anderenTabelle) angeben und dort die Namen eintragen. Da hätte den Vorteil, dass Du leichter Änderungen vornehmen kannst.
Gruß
OmaDuck
Antwort 3 von Primut
Hi Schrauber,
eine kleine Korrektur zu meinem Makro:
"Name" wird von VBA schon verwendet, d.h. du würdest damit auch jeweils den Blattnamen ändern, sorry. Mußt du dir halt einen anderen Variablennamen für die Personennamen (zB) ausdenken.
Gruß
Primut
eine kleine Korrektur zu meinem Makro:
"Name" wird von VBA schon verwendet, d.h. du würdest damit auch jeweils den Blattnamen ändern, sorry. Mußt du dir halt einen anderen Variablennamen für die Personennamen (zB) ausdenken.
Gruß
Primut
Antwort 4 von Malewski
Hi Freunde für mich wäre es auch das richtige Makro. Aber leider ändert sich nur der Tabellenname.
Schön wäre es wenn es sich auf die Spalte A von 2 bis 120 beziehen würde. Auch die 6 Namen reichten mir !!
Also mein Problem das sich wenn ich in Zelle A1 eine "1" eingebe ändert sich zwar die Zahl in Text "Eins" und auch der Name des Tabellenblatt !!
Für Hilfe wäre ich Euch lieben Geistern Dankbar !!
Schön wäre es wenn es sich auf die Spalte A von 2 bis 120 beziehen würde. Auch die 6 Namen reichten mir !!
Also mein Problem das sich wenn ich in Zelle A1 eine "1" eingebe ändert sich zwar die Zahl in Text "Eins" und auch der Name des Tabellenblatt !!
Für Hilfe wäre ich Euch lieben Geistern Dankbar !!
Antwort 5 von schnallgonz
N´abend,
@Malewski
guckst Du Antwort 4 :-)
das bedeutet:
ändere im Script den Variablennamen
verwende also anstelle "Name" "Malewski" oder "Primut" oder "TollerName"
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
@Malewski
guckst Du Antwort 4 :-)
das bedeutet:
ändere im Script den Variablennamen
verwende also anstelle "Name" "Malewski" oder "Primut" oder "TollerName"
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
Antwort 6 von schnallgonz
ähh
guckst Du besser Antwort 3
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
guckst Du besser Antwort 3
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
Antwort 7 von Malewski
Hallo Ihr Lieben !!
Habe das Makro kopiert dann unter VBA in das Tabelleblatt 1 kopiert - dort steht es nun unter Worksheet und Change . Dann hab ich hinter Cells(1, 1).Value = TEST eingegeben.
Danach VBA geschlossen .
Leider kommt wieder nach eingabe in Zelle A1 von 1 bis 6 kein Name .
Nur der Tabellenblattname von Blatt 1 unten ändert sich !!
( je nach Eingabe in Eins bis Sechs )
inn allen anderen unter A1 tut sich nichts.
Liegt es an mir oder an Excel XP
Ich brauchte nur von A2 bis ca. A100 eine Zahl von 1 bis 6 eingeben . Hab es wirklich versucht aber wo ist der Fehler ??
Habe das Makro kopiert dann unter VBA in das Tabelleblatt 1 kopiert - dort steht es nun unter Worksheet und Change . Dann hab ich hinter Cells(1, 1).Value = TEST eingegeben.
Danach VBA geschlossen .
Leider kommt wieder nach eingabe in Zelle A1 von 1 bis 6 kein Name .
Nur der Tabellenblattname von Blatt 1 unten ändert sich !!
( je nach Eingabe in Eins bis Sechs )
inn allen anderen unter A1 tut sich nichts.
Liegt es an mir oder an Excel XP
Ich brauchte nur von A2 bis ca. A100 eine Zahl von 1 bis 6 eingeben . Hab es wirklich versucht aber wo ist der Fehler ??
Antwort 8 von schnallgonz
Hi Malewski,
poste mal fix Deinen Code,
denn gleich is´ bei mir MHD angesagt.
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
poste mal fix Deinen Code,
denn gleich is´ bei mir MHD angesagt.
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
Antwort 9 von Malewski
Malewski@aol.com
Antwort 10 von schnallgonz
Hallo Malewski,
mit Code meinte ich Dein Makrotext, sorry.
Du mußt das Wort "Name" komplett im ganzen Text durch ein anderes Wort ersetzen.
Dann wird aber nur in A1 der Text "eins" oder "zwei" usw geschrieben.
Für den ganzen Bereich A2:A100 muß das Listing anders geschrieben werden und eine anderer Zielbereich als
Cells(1, 1) (ist =A1) angegeben werden.
Ich habe gerade mal probiert, das in einer Kurzfassung zu schreiben, funzt aber noch nicht.
Spätestens morgen bekommst Du Dein fertiges Listing, vielleicht liest dies heute aber noch ein VBA-Spezi und nennt mir den Zielbereich mit sowas wie Target.Value
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
mit Code meinte ich Dein Makrotext, sorry.
Du mußt das Wort "Name" komplett im ganzen Text durch ein anderes Wort ersetzen.
Dann wird aber nur in A1 der Text "eins" oder "zwei" usw geschrieben.
Für den ganzen Bereich A2:A100 muß das Listing anders geschrieben werden und eine anderer Zielbereich als
Cells(1, 1) (ist =A1) angegeben werden.
Ich habe gerade mal probiert, das in einer Kurzfassung zu schreiben, funzt aber noch nicht.
Spätestens morgen bekommst Du Dein fertiges Listing, vielleicht liest dies heute aber noch ein VBA-Spezi und nennt mir den Zielbereich mit sowas wie Target.Value
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
Antwort 11 von schnallgonz
Hi, ich nochmal,
nachfolgendes Listing funzt für Spalte A,
also wenn in Spalte A 1 bis 6 eingegeben wird, wird
die Zahl durch "eins", "zwei" usw ersetzt.
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
nachfolgendes Listing funzt für Spalte A,
also wenn in Spalte A 1 bis 6 eingegeben wird, wird
die Zahl durch "eins", "zwei" usw ersetzt.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Select Case Target
Case 1
Primut = "Eins"
Case 2
Primut = "Zwei"
Case 3
Primut = "Drei"
Case 4
Primut = "Vier"
Case 5
Primut = "Fünf"
Case 6
Primut = "Sechs"
Case Else
Exit Sub
End Select
Application.EnableEvents = False
Target.Value = Primut
Else
End If
Application.EnableEvents = True
End Sub
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
Antwort 12 von Malewski
Vielen Dank
hab mich gleich drangesetzt und es klappt.
hat man auch die möglichkeit das auf eine andere Spalte umzuschreiben !
würde mir entgegenkommen denn dann könnte ich es für eine weitere Tabelle gut nutzen !!
- wenn möglich kannst Du mir da noch ein letztes mal helfen ?? -
wenn Du irgendwann mal eine ruhige Stunde hast !!
Mit Besten Dank
( werde danach nicht mehr nerven )
hab mich gleich drangesetzt und es klappt.
hat man auch die möglichkeit das auf eine andere Spalte umzuschreiben !
würde mir entgegenkommen denn dann könnte ich es für eine weitere Tabelle gut nutzen !!
- wenn möglich kannst Du mir da noch ein letztes mal helfen ?? -
wenn Du irgendwann mal eine ruhige Stunde hast !!
Mit Besten Dank
( werde danach nicht mehr nerven )
Antwort 13 von schnallgonz
Moin Malewski,
Fragen und Antworten sind Sinn und Zweck dieses Forums.
Falls Du mich nerven würdest, bräuchte ich Dir ja nicht zu antworten.
Also, keine Scheu vor Fragen.
Umschreiben für andere Spalten
Ersetze die "1" für Spalte "A" durch "2" für Spalte "B" usw.
Brauchst Du "eins" bis "sechs" für Schulnoten, bist Du gar Lehrer?
Dann solltest Du vor Fragen erst Recht keine Bedenken haben, nur weil Du gewohnt bist, Fragen zu beantworten ;-)
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
Fragen und Antworten sind Sinn und Zweck dieses Forums.
Falls Du mich nerven würdest, bräuchte ich Dir ja nicht zu antworten.
Also, keine Scheu vor Fragen.
Umschreiben für andere Spalten
If Target.Column = 1 Then
Ersetze die "1" für Spalte "A" durch "2" für Spalte "B" usw.
Brauchst Du "eins" bis "sechs" für Schulnoten, bist Du gar Lehrer?
Dann solltest Du vor Fragen erst Recht keine Bedenken haben, nur weil Du gewohnt bist, Fragen zu beantworten ;-)
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
Antwort 14 von schnallgonz
Moin nochmal,
ich habe noch ´ne Variante, bei der der Zielbereich nicht nur eine ganze Spalte abdecken kann, sondern Teilbereiche.
Dazu einfach Range("A1:A100") durch den gewünschten Bereich austauschen.
Wenn ein Wert ausserhalb 1 bis 6 eingegeben wird, erklärt einem eine MsgBox den Fehler und nimmt die Eingabe zurück.
Schönen Tach
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
ich habe noch ´ne Variante, bei der der Zielbereich nicht nur eine ganze Spalte abdecken kann, sondern Teilbereiche.
Dazu einfach Range("A1:A100") durch den gewünschten Bereich austauschen.
Wenn ein Wert ausserhalb 1 bis 6 eingegeben wird, erklärt einem eine MsgBox den Fehler und nimmt die Eingabe zurück.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo schnallgonz
Dim Zellbereich As Range
Set Zellbereich = Range("A1:A100")
Select Case Target
Case 1
Primut = "Eins"
Case 2
Primut = "Zwei"
Case 3
Primut = "Drei"
Case 4
Primut = "Vier"
Case 5
Primut = "fünf"
Case 6
Primut = "Sechs"
Case Else
Exit Sub
End Select
Application.EnableEvents = False
Target = Primut
Application.EnableEvents = True
Exit Sub
schnallgonz:
MsgBox ("Chefe, nur Zahlen zwischen 1 und 6 erlaubt!")
Target = ""
End Sub
Schönen Tach
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
Antwort 15 von schnallgonz
Tagchen,
noch ´ne Korrektur zur letzten Antwort:
statt
besser
Ersteres führt beim Löschen einer Mehrfachauswahl zu einer Endlosschleife und man muß Excel abschießen.
Zweites prüft, ob Eingabe eine Zahl ist.
Wenn nicht, MsgBox und Löschen der Texteingabe.
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
noch ´ne Korrektur zur letzten Antwort:
statt
On Error GoTo schnallgonz
besser
If IsNumeric(Target) = False Then Goto schnallgonz
Ersteres führt beim Löschen einer Mehrfachauswahl zu einer Endlosschleife und man muß Excel abschießen.
Zweites prüft, ob Eingabe eine Zahl ist.
Wenn nicht, MsgBox und Löschen der Texteingabe.
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
Antwort 16 von schnallgonz
Asche auf mein Haupt,
wer dieses Ereignis braucht, sollte erstmal mit Antwort 11 Vorlieb nehmen, bis ein VBA-Spezi meiner Änderung Target korrekt einer Auswahl zuweist.
Mein Vorschlag danach funzt nicht, weil die ganze Tabelle betroffen ist.
Ich krieg´s nicht hin.
Die Nummer mit Target.Address = Zellbreich.Address funzt auch nicht.
Brauche mal kompetente Hilfe dazu.
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
wer dieses Ereignis braucht, sollte erstmal mit Antwort 11 Vorlieb nehmen, bis ein VBA-Spezi meiner Änderung Target korrekt einer Auswahl zuweist.
Mein Vorschlag danach funzt nicht, weil die ganze Tabelle betroffen ist.
Ich krieg´s nicht hin.
Die Nummer mit Target.Address = Zellbreich.Address funzt auch nicht.
Brauche mal kompetente Hilfe dazu.
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
Antwort 17 von schnallgonz
Moin,
wer abweichend von Antwort 11 anstatt einer Spalte einen Bereich abfragen möchte, findet die Lösung hier:
https://supportnet.de/threads/1003617
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt
wer abweichend von Antwort 11 anstatt einer Spalte einen Bereich abfragen möchte, findet die Lösung hier:
https://supportnet.de/threads/1003617
MfG
schnallgonz
Ein Erfahrener ist besser als 10 Gelehrte.
Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt