Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel - Wert in leere Zelle schreiben lassen? //*CLOSED*//





Frage

Hallo, ich habe folgendes Problem und bin mir nicht sicher, ob das mit Excel überhaupt geht: Ich habe 4 Zellen A1bis A4. In A1 und A2 werden normal Zahlenwerte von Hand eingegeben, die in der Zelle A3 summiert werden. In der Zelle A4 steht hingegen eine Textbeschreibung. Mein Problem ist nun: Wenn in diesem Text zum Beispiel "Test" geschrieben wird, dann sollen die Felder A1 und A2 automatischen mit bestimmten Zahlenwerten ausgefüllt werden. Jedoch soll in Zelle A1 und A2 keine Formel stehen. Geht das? Danke schon mal für konstruktive Tipps! Strampe

Antwort 1 von Hajo_Zi

Hallo Nick,

ja das geht mit VBA, man kann es prüfen wenn in A4 was eingegeben wird. Danach knnen aber A1 und A2 überschrieben werden.

Gruß Hajo

Antwort 2 von Strampe

Und wie genau?
Was muss ich dann mit Visual Basic machen?

Antwort 3 von Hajo_Zi

Hallo Nick,

das war nicht die Frage in Deinem ersten Beitrag.
Unter der Tabelle
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$4" And Target.Count = 1 Then
Application.EnableEvents = False
If InStr(UCase(Target), "TEST") > 0 Then
Range("A1") = 123
Range("A2") = 135
End If
Application.EnableEvents = True
End If
End Sub

Gruß Hajo

Ein Hallo zu Beginn und ein Gruß am Ende läst den Beitrag doch gleich viel freundlicher aussehen. Auch wenn Du den Beitrag am Computer eingibst sitzen an der anderen Seite doch Leute und keine Maschinen die Deine Frage beantworten und da sollte Zeit für die paar Worte doch vorhanden sein.

Antwort 4 von Strampe

Bitte entschuldige!

Also Hallo erstmal,

ich kann Deiner Ausführung aber leider noch nicht ganz folgen. Ich bin leider alles nur kein VBA Spezialist. Wenn ich mit ALT+F11 den Editor aufrufe, wie und wo muss ich dann den Code eingeben? Und wie aktiviere ich ihn dann?

Danke nochmals!

Antwort 5 von Hajo_Zi

Hallo Nick,

der Code muss ich aktiviert werden. Mache im VBA Editor ein Doppelklick auf Deine Tabelle im Projektexplorer und füge den Code rechts ein. Oder in der Tabelle auf die Tabelle gehen, rechte Maustaste und Code anzeigen und dort den Code hin kopieren.

Gruß Hajo

Antwort 6 von Strampe

Hallo,

leider bekomme ich es noch immer nicht hin. Ich bin dabei wie folgt vorgegangen:
- Neue Mappe in Excel gestartet mit Namen "Mappe1"
- Auf "Extras" -> "Makro" ->"Visual Basic-Editor" geklickt
- Links im Projektexplorer im Reiter VBAProject (Mappe1) auf "DieseArbeitsmappe" geklickt -> Ein Fenster öffnet sich mit der Beschriftung "Mappe1 - DieseArbeitsmappe (Code)" , die beiden Roll-Up-Menüs stehen auf "(Allgemein)" und "(Deklarationen)"
- In dieses Fenster den von Dir geschriebenen Code 1:1 übertragen (Strg-C -> StrgV)
- In der Excel-Tabelle in der Zelle A4 "TEST" (natürlich ohne Anführungsstriche) eingegeben.

Leider hat er danach die Werte "123" und "135" leider nicht in die Zellen A2 und A3 geschrieben. Kannst Du mir sagen, was ich falsch gemacht habe? Muss ich in Deinem Code noch irgendetwas anpassen?

Danke nochmals

Strampe

Antwort 7 von Hajo_Zi

Hallo Nick,

wenn das nicht geht mußt Du den Fragen der Dir erzählt hat Doppelklick auf DieseArbeitsmappe. Ich hatte das nicht vorgeschlagen.

Gruß Hajo

Antwort 8 von Strampe

Hallo,

hat funktioniert!

Danke nochmals

Antwort 9 von Strampe

Hey und hallo zum hoffentlich nun letzten Mal,

jetzt hab ich noch das Problem, dass ich diese Funktion für die Spalten A bis K verwenden möchte. Könntest Du mir bitte noch sagen, wie ich deinen Code hierfür abändern muss?
Soll heißen er soll jetzt die Spalten A4, B4, C4 ... bis K4 überprüfen, ob "Test" drin steht und daraufhin die Zellen A1&A2 bzw. B1&B2 bzw. C1&C2, usw. falls nötig automatisch auffüllen.

Danke für Deine Mühe!

Antwort 10 von Strampe

Hallo,

hatte in meinem Post noch was vergessen:

Wie müsste der Code lauten, wenn statt "TEST" nun "ANGEBOT" in der Zelle A4, B4, C4,... steht und dabei auch andere Werte in die Zellen A1 und A2 bzw. B1/B2, C1/C2, ... geschrieben werden sollen?

Ich hoffe ich beanspruche Deine Geduld nicht allzusehr.

Gruß

Strampe

Antwort 11 von Hajo_Zi

Hallo Nick,

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <= 11 And Target.Row = 4 And Target.Count = 1 Then
Application.EnableEvents = False
If InStr(UCase(Target), "TEST") > 0 Then
Target.Offset(-3, 0) = 123
Target.Offset(-2, 0) = 135
End If
Application.EnableEvents = True
End If
End Sub

ersetze 123;135 und TEST durch Deine Werte, nur Großbuchstaben.

Gruß Hajo

Antwort 12 von ExcelNoob_2008

Hallo,

ich habe ein ganz ähnliches Problem. Ich will auch Zahlenwerte in leere Zellen schreiben lassen, wenn in einer anderen Zelle "Urlaub" oder "Feiertag" steht. Bei mir sieht das ganze aber so aus:

Ich hab mir eine Tabelle erstellt, in die ich meine Tätigkeiten und wann ich angefangen und aufgehört habe zu arbeiten eingetragen. Für jeden Monat von Januar bis Dezember ein Tabellenblatt. Die Tabelle rechnet mir dann in den Zellen G6 bis G36 (z.B. im Januar mit 31 Tagen-> Jeder Tag ist eine Zeile), die Zeit aus, die ich gearbeitet habe. In den Zellen L6 bis einschließlich L36 stehen meine Tätigkeiten drinne. Manchmal steht hier eben auch "Urlaub" oder "Feiertag" drin. Weil ich nun zu faul bin, für diese Tage Uhrzeiten in die "von" und "bis"-Zellen zu schreiben und damit meine Auswertung weiterhin stimmt, soll dies automatisch für mich gemacht werden.
Ich nehme mal an, dass die obige VBA-Formel hier auch irgendwie geht, aber ich kann sie eben nicht für meine zwecke abändern, weil ich mich mit Visual Basic 0 auskenne.
Könnte mir da jemand helfen?
Zum besseren Verständnis hier noch ein Link zu einem Bild, auf dem meine Tabelle zu sehen ist.

Excel_Tätigkeitsnachweis

Dankeföhn

  • *Threadedit* 14:37:40, 29.02.2008
    Admininfo: Führ bitte fremde Threads nicht fort indem du eigene Anfragen anhängst.
    Die User werden es dir danken. Siehe FAQ 2, #7