Frage von Unwissend000, 50

Wie kann ich ein Eingabefeld anlegen, in das ich eine Zahl und daneben ein zugehöriges Wort eintippe, welches dann automatisch in meine Tabelle eingefügt wird?

Hallo, ich bastele noch immer an meiner Mastersytemliste. (Für alle, die es nicht kennen, es geht darum, sich mit Worten Zahlen merken zu können.)

Ich habe eine Tabelle angelegt mit den Zahlen von 0 bis 9999. Statt immer zur gewollten Zahl zu scrollen und daneben das dazugehörige Wort einzutippen, wollte ich wissen, ob man nicht ein Eingabefeld oberhalb der Tablle erstellen kann. Die Wörter fallen mir auch nicht der Reihe nach ein, sondern mal ein Wort zu 7513 und dann zur 1154 und dann 9989 usw. In meiner Vorstellung/Wunsch tippe ich dann die Zahl ein und das dazugehörende Wort und dieses Wort wird unten in der Tabelle automatisch in das Feld rechts neben der Zahl eingefügt.

Ich habe aus Platzgründen aber mehr als zwei Spalten angelegt. Ich sehe pro Seite immer 100 Zahlen, verteilt auf 20 Zahlen pro Spalte über 5 Spalten.

Also A1=1 A2=2 A3=3 ... bis A19

B1= Wort zu A1 B2= Wort zu A2 ...

C1= 20 C2= 21 ... bis 39 in C19

D1= Wort zu B1 usw.

E1= 40 E2= 41 ... bis 59 in E19

F1 = Wort zu E1

G1= 60 geht bis 79 in Zeile G19 H1= Wort zu G1 I1= 80 geht bis 99 in Zeile I19 J1= Wort zu I1

Um es noch etwas komplizierter zu machen: Das Wort müsste einem eventuell in dieser Zelle bereits stehendem (es gibt mehr als ein Wort pro Zahl) hinzugefügt werden.

Ich hoffe, dass das irgendwie halbwegs verständlich erklärt ist. Ziemlich schwierig zu beschreiben. Würd mich total freuen, wenn mir jemand weiterhelfen kann....

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Ninombre, Community-Experte für Excel, 47

Hmm, das Konstrukt ist etwas seltsam und die Beschreibung passt auch nicht wirklich zusammen oder ich verstehe es nicht:.
Wenn Du bei 0 anfängst, dann sollte in A1 auch 0 stehen und nicht 1.
20 Zahlen pro Spalte wären nach meinem Verständnis jeweils A1-A20

Sub xyz()
wohin = InputBox("Laufende Nummer: ")+ 1
was = InputBox("Text:")
spalte = (Int(wohin / 21) + 1) * 2
zeile = wohin - Int(wohin / 21) * 20
Cells(zeile, spalte).Value = Cells(zeile, spalte).Value & " " & was
End Sub

Wenn es nicht 20 sondern 19 zahlen je Spalte sind, dann die 21/20 jeweils um eins reduzieren.

Wenn die erste Zahl nicht 0 ist, sondern 1 dann das fettgedruckte +1 weglassen

Wenn es Dir lieber ist, könnte man auch zwei Zellen definieren statt der InputBoxen.

Kommentar von Unwissend000 ,

Ja. Natürlich,  du hast vollkommen recht! Ich merke, da spricht ein Experte. Meine Tabelle sieht aus wie von dir beschrieben. Aber als ich es aus dem kopf erklären wollte, hab ich die Null vergessen.

A 1= 0, A 2=1, ... A 20=19

B 1- B20 sind die wörter dazu

C1=20, C2=21C, ... C20= 39 usw.

Danke für den Hinweis!

Kommentar von schmiddi1967 ,

DH! Ninombre

Kommentar von Unwissend000 ,

Ninombre, danke für deine Hilfe. Leider versteh ich sie nicht. Aber schmiddi und er hat sich netterweise schon bereiterklärt es für extra doofe ganz fertigzustellen 😅

Expertenantwort
von Iamiam, Community-Experte für Excel, 37

Ich hatte mal einen Kommilitonen, der konnte zu jeder Jahreszahl ein Ereignis sagen. Das sind 2000, was schon eine Leistung ist.

Ich garantiere Dir, dass Du das 5-fache nicht schaffst!. Leg Deine Datei etwas bescheidener von 0-999 an, das wäre schon recht gut. Hast Du größere Zahlen oder Telefonnummern, musst Du Dir eben mehrere merken, auch schon bei bei Postleitzahlen nötig, seit fümpf Trümpf ist!

Kommentar von Unwissend000 ,

Nein, das hast du falsch verstanden. Es geht darum, sich die Zahlen einfacher merken zu können. Und die nach einem festen System. Diese Wörter muss ich aber nicht alle 9999 auswendig können.

Ich muss nur folgendes wissen:

0= sch, z, tz, ch

1= t, d

2= n

3=m

4= L

5= s, ss, ß

6= g, k, ck

7= f, v, w

8= b, p

9= r

Alle vokale (aeiouüäö) und andere nicht genannte buchstaben (h,y,...) können frei dazwischen oder davor gesetzt werden. 

Einfaches beispiel: 

Ich möchte mir die pin 4721 merken. Dann schaue ich in meiner Liste nach und finde eLeFaNT. Jetzt muss ich mir nur elefant merken und nicht die dazugehörige Zahl. Denn wenn ich elefant im kopf durchgehe, finde ich L (=4), F(=7), N(=2), T(=1).

Ist die Zahl 47216071, ist es ein eLeFaNT  in einem GeSCHäFT.

Aus "einem eLeFaNT, der in einem GeSCHäFT KLaVieR spielt" wird: 4721 6071 6479

(noch ein Hinweis:  es stehen immer nur die Nomen in meinem Merksatz/ meiner Geschichte für Zahlen. Und Verdopplungen werden einfach gezählt. Also Geschirr= 609)

Expertenantwort
von schmiddi1967, Community-Experte für Excel, 33

Hey, ich mache dir da gerne was fertig aber ob ich das heute noch schaffe weiß ich nicht genau.

Das was ich mache läuft über VBA und über eine Eingabemaske, in die du als erstes die Zahl eingibst und dann wird die Zelle markiert und es öffnet sich eine zweite Maske in der du das Wort eingibst welches dann in die Zelle rechts daneben eingetragen wird. Sollte die Zelle schon belegt sein wird das eingegebene Wort dazu gekommen.

War das so gemeint?

Kommentar von Unwissend000 ,

Ja, genauso wünsche ich es mir. Muss auch nicht heute oder morgen sein. Hauptsache es wird irgendwann einfacher für mich...

Kommentar von schmiddi1967 ,

Ok, hast du da schon viele Daten drin? Sonst baue das mal nach und sende dir dann die Datei zu oder Lade sie hoch und verlinke sie hier.

Weil das wäre ja blöd wenn du da schon viele Daten drin hast und dann von vorne anfangen musst.

Mit genauer Beschreibung würde das auch gehen, diese muss ich dann basteln. Wegen Userform anlegen und wo dann welcher Code hin soll :))

Kommentar von schmiddi1967 ,

Ich habe mir gerade mal den Code von Ninombre angeschaut, etwas geändert macht er doch genau was du willst. Man könnte natürlich ein Button einbauen um das Makro zu starten, aber es ist doch genau das was du willst. Hier mal der Code für deine Tabelle:

Sub xyz()
wohin = InputBox("Laufende Nummer: ") + 1
was = InputBox("Text:")
spalte = (Int(wohin / 20) + 1) * 2
zeile = wohin - Int(wohin / 20) * 20
Cells(zeile, spalte).Value = Cells(zeile, spalte).Value & " " & was
End Sub

Das einfach in den VBA Code deiner Tabelle und fertig, das sollte dir doch schon helfen oder?

Kommentar von schmiddi1967 ,

Achja, möchtest du das die Einträge in der Zelle mit einen Komma getrennt werden dann in diese Zeile einfach ein , zwischen die " " setzen, so das es so aussieht:

Cells(zeile, spalte).Value = Cells(zeile, spalte).Value & " , " & was
Kommentar von Unwissend000 ,

Ja , genau, mit Komma wär super

Kommentar von Unwissend000 ,

Ich habe bislang vielleicht 500 Wörter. Ist ziemlich anstrengend sie zu finden. 

Habe schon eine Liste mit den wichtigsten Wörtern der Deutschen Sprache heruntergeladen, sie in Excel eingefügt, mit suchen und ersetzen alle Wörter, die mit kleinem Buchstaben anfangen gelöscht (damit nur Nomen über bleiben) und dann die jeweiligen Buchstaben durch Zahlen ersetzt. Die, die dann maximal 4 Stellen hatten, bin ich jetzt aus dieser Liste am übertragen. 

Das wär total toll, wenn du das hinbekommst. Kann die Wörter aber gern neu eintragen, mit dem neuen Eingabefeld geht es dann ja schnell. Das scrollen und richtiges Feld finden ist nur so zeitaufwendig.

Vielen vielen Dank! 

Kommentar von schmiddi1967 ,

Aber der Code von Ninombre den ich hier jetzt abgeändert in meiner antwort geschrieben habe sollte doch genau das machen was du willst oder?

Kommentar von Unwissend000 ,

Ich habe ehrlich gesagt keine Ahnung. Ich habe nie gelernt so einen Code zu lesen oder zu erstellen - Wobei ich das schon gern könnte. Ich hoffe auf etwas, dass ich nur einfügen muss. 

Kommentar von schmiddi1967 ,

ok, also in deiner Datei unter mit der rechten Maustaste aud dein Tabellenblatt und da auf Code anzeigen.

In das neue Fenster trägst du dann folgendes ein:

Sub xyz()
wohin = InputBox("Laufende Nummer: ") + 1
was = InputBox("Text:")
spalte = (Int(wohin / 20) + 1) * 2
zeile = wohin - Int(wohin / 20) * 20
Cells(zeile, spalte).Value = Cells(zeile, spalte).Value & " , " & was
End Sub

Jetzt schliesst du das Fenster einfach wieder und speicherst deine Datei. Du solltest jetzt eine Medung erhalten, diese mit NEIN beantworten und dann im folgenden Dialog bitte unten "Excel Arbeitsblatt mit Makros" xlsm Datei auswählen und speichern.

Und fertig ist deine Datei :))

Kommentar von schmiddi1967 ,

Na gut, wenn du mit dem Eibau des Codes nicht klar kommst und wenn deine Datei kein Geheimnis ist, kannst du sie mir gerne an meine in meinem Profil hinterlegte Email Adresse senden und ich sende sie dir mit eingebautem Code zurück.

Aber bitte denke beim vergeben der hilfreichsten Antwort daran, das der ursprüngliche Code von Ninombre kommt.

Kommentar von Unwissend000 ,

Nein. Ist kein Geheimnis. Einfach nur eine Tabelle mit Worten und Zahlen. Ich schicke sie dir morgen. 

Danke

Kommentar von schmiddi1967 ,

ok, Beschreibung hatte ich auch gerade gepostet. Mach einfach was für dich am einfachsten ist :))

Kommentar von schmiddi1967 ,

Vergessen oder hast du es schon selbst geschafft einzubauen?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten