Supportnet Computer
Planet of Tech

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

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

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

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 !!

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


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


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 ??

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


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


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.

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 )

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
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.

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
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


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


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: