Registriert seit: 06.03.2017
Version(en): 2007
Hallo,
ich habe eine Tabelle die ich über mehrere Indexfunktionen mit Daten befülle und dann einige Berechnungen macht. Ich hatte dazu hier schon mal das Eingabezellen an Drehfeld koppeln. Dafür habe ich mir ja eine UF erstellt die auf eine Hilfstabelle zugreift und dann Per Index der Wert zurückkommt.
Jetzt bin ich hier gerade auf die Inputbox gestossen, dazu hätte ich eine Frage. Ist es möglich, das ich in Tabelle1 in eine Zelle klicke( diese holt sich per Index ihren Inhalt aus Tabelle2), das eine Inputbox geöffnet wird, und wenn ich dort einen Wert eingebe das in die entsprechende Zelle in Tabelle2 eingetragen wird?
Das mit der UF und den einzelnen Macros funktioniert zwar ganz gut, aber könnte noch verbessert werden^^ Zumal es jetzt schon knapp 20 Zeilen sind, die ich per UF füttere.
Registriert seit: 11.04.2014
Version(en): 2021
???
Gruß Günter aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo ich habe mit meinem Code mal "ins Blaue geraten" und hoffe ich liege richtig. Dann sieht es so aus: Ich gehe davon aus das Tabelle1 aktiv isti und aus Tabelle2 der Wert in der gleichen Zeile zu holen ist. Weil ich nicht weiss ob die Eingabe Text oder Zahl ist habe ist für die Vaiablen Variant henommen. Die richtige Spalte muss ggf. noch angepasst werden, bei mir m Beispiel ist es Spalte "A" mfg Gast 123 Code: Sub InputBox_Eingabe() Dim Eingabe As Variant, Wert As Variant 'ıch gehe davon aus das "Tabelle1" aktiv ist!! Zeile = ActiveCell.Row 'in Tabelle1 'Wert aus Tabelle2 in gleicher Zeile holen (Spalte A) Wert = Worksheets("Tabelle2").Cells(Zeile, "A").Value
Eingabe = InputBox("Bitte Wert eingeben", , Wert) If Eingabe <> Empty Then _ Worksheets("Tabelle2").Cells(Zeile, "A") = Eingabe End Sub
Registriert seit: 06.03.2017
Version(en): 2007
Hallo,die Tabellen sind nicht identisch aufgebaut, und sind auch per Drehfeld sozusagen dynamisch.Ausschnitt Tabelle 1:Arbeitsblatt mit dem Namen 'TBVC' | | M | 2 | 20.6.17 | 3 | Dienstag | 4 | | 5 | 0 | 6 | 0 | 7 | 0 | 8 | -6323 | 9 | | 10 | -432 | 11 | 0 |
Zelle | Formel | M2 | ='opt. Übersicht'!A8+B3 | M3 | =TEXT(M2; "TTTT") | M5 | =INDEX(Termineingabe!$E$41:$E$162;VERGLEICH(M2;Termineingabe!$C$41:$C$104;0);1) | M6 | =INDEX(Lieferungen!$E$5:$E$888;VERGLEICH(M2;Lieferungen!$C$5:$C$888;0);1) | M7 | =M6*72 | M8 | =L8+M7-M5 | M10 | =L10+M11+M15+M13-M7 | M11 | =INDEX(Lieferungen!$Y$5:$Y$888;VERGLEICH(M2;Lieferungen!$C$5:$C$888;0);1) |
Diese Tabelle wurde mit Tab2Html (v2.5.0) erstellt. ©Gerd alias Bamberg | In diesem Fall möchte ich zB. in Zelle M6 klicken, eine Inputbox geht auf, und wenn ich dort einen Wert eingebe soll dieser in der Passenden Zelle der anderen Tabelle landen.(Diese ist statisch und beinhaltet nur das datum und die entsprechende Spalte für die Werte)Ich hoffe jetzt kann man verstehn was ich meine.
Registriert seit: 06.03.2017
Version(en): 2007
Gibt es da keine andere Möglichkeit?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo, der Gast123 hat doch einen Lösungsansatz mit Inputbox gepostet. Das hast Du in Deiner Frage gewünscht. Was ist daran falsch? Zitat:Gibt es da keine andere Möglichkeit? Sicher. Du kannst z.B. was in eine Zelle schreiben und das dann auf Knopfdruck verarbeiten. Oder ... Aber wie gesagt, da wäre zum einen die Frage, was bei der Inputbox nicht passt, und zum anderen, was für eine Möglichkeit suchst Du denn noch wenn Du nun doch keine Inputbox willst?
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 06.03.2017
Version(en): 2007
23.06.2017, 08:57
(Dieser Beitrag wurde zuletzt bearbeitet: 23.06.2017, 09:09 von M.Wichmann.)
Hallo, ja Gast123 hat einen Lösungsvorschlag gepostet. Aber der war mit der Vorraussetzung das die Tabellen gleich aufgebaut sind. Und das sind sie nicht.
Ich habe Tabelle1 die mir dynamisch den Bereich heute -7Tage +20Tage horizontal anzeigt, den Bereich kann ich zusätzlich per Drehfeld scrollen. Diese zieht sich Momentan per Index einige Zahlen, die ich per UF in die andere Tabelle2 schreibe(diese ist Vertikal). Das funktioniert zwar, aber ist doch ein wenig umständlich.
Besser wäre, ich klicke in Tabelle1 in eine Zelle, und ich habe direkt die Möglichkeit, einen Wert in die per Index angezeigte Zelle der Tabelle2 schreiben. Ob nun per Inputbox oder wie auch immer. Keine Ahnung was es da noch für Möglichkeiten gibt.
Ich dachte, zb das der Code der IB erkennt auf welche Quellzelle sich die Zelle bezieht und sich diese Zelle als Ziel für den eingegebenen Wert setzt.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
ja, die genaue Beschreibung von Fehlern oder Abweichungen zur Aufgabenstellung oder zum Ergebnis ist genau der Punkt.
Natürlich gilt das mit der genauen Beschreibung auch schon bei der Aufgabenstellung. Die Info mit den UF ist für die Aufgabe nicht relevant, freut ggf. die User, die dazu beigetragen haben, dass das läuft. Ansonsten verwirrt das eher. Ebenso das Drehfeld ...
Im Prinzip ist neben der Inputbox die grundlegende Aufgabe hier, die INDEX - Formel im VBA nachzubilden, um im VBA auch auf die gewünschte Zelladresse im anderen Blatt zu kommen.
Mal sehn, was sich da machen lässt. Ich bin jetzt aber erst mal bis ca. heute Abend offline. Vielleicht
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
23.06.2017, 22:35
(Dieser Beitrag wurde zuletzt bearbeitet: 23.06.2017, 22:35 von schauan.)
Hallöchen, im Prinzip könnte man das so lösen: Code: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'Variablendeklaration - Range Dim rngCell As Range, strCell As String, strSheet As String 'Wenn die Klickzelle M5. M6 oder M11 ist, dann If Target.Address = "$M$5" Or Target.Address = "$M$6" Or Target.Address = "$M$11" Then 'Zelladresse anhand Formel ermitteln strCell = Application.Evaluate("=ADDRESS(ROW(" & Replace(Cells(6, 13).Formula, "=", "") & "),COLUMN(" & Replace(Cells(6, 13).Formula, "=", "") & "))") 'Blattauwahl entsprechend gewaehlter Zeile Select Case Target.Row 'Bei Zeile 5 Case 5: strSheet = "Termineingabe" 'Bei Zeile 6 und 11 Case 6, 11: strSheet = "Lieferungen" 'Ende Blattauwahl entsprechend gewaehlter Zeile End Select 'Zelle zuweisen Set rngCell = Sheets(strSheet).Range(strCell) 'Meldung mit Adresse ausgeben MsgBox rngCell.Address 'hier die Inputbox 'Ende Wenn die Klickzelle M5. M6 oder M11 ist, dann End If 'Ende Eingabemodus Cancel = True End Sub
Du müsstest nun statt der Meldung eine Inputbox programmieren und die Eingabe dann in die Zelle rngCell übertragen. Den Code könnte man noch einfacher schreiben. Man bräuchte nicht unbedingt die komplette Formel mit ...Evaluate auszuwerten, der Vergleich würde reichen. Aber, ehe ich die Formel auseinanderklabüsere oder anders suche ...
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 06.03.2017
Version(en): 2007
26.06.2017, 08:15
(Dieser Beitrag wurde zuletzt bearbeitet: 26.06.2017, 08:15 von M.Wichmann.)
Hallo, habe gerade den Code mal ausprobiert. Habe es auch mit der Inputbox soweit hinbekommen. Aber leider gibt die MSG immer die selbe Zelle aus. Und zwar die die bei M6 richtig wäre. Also betrifft das auch die Inputbox. Ich benötige auch nur die Zeilen die als Index auf Lieferungen zugreifen, also in diesem Fall Zeile 6 und 11 allerdings noch 8 andere Zeilen in dieser Tabelle. Spaltenbereich F bis BB. In einer weiteren Tabelle, die eine ähnliche Funktion erfüllt, da wären es sogar momentan 15 Zeilen Wie würde ich den bereich erweitern müssen? Jetzt würde das ja nur bei 3 Zellen gehen.
|