Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Default Wert in Zellen Festlegen

Default Wert in Zellen Festlegen
18.08.2017 16:18:01
Lucas
Hallo zusammen
Ich möchte in einem Excel Dokument (siehe File upload) für den Bereich C4:N4 Defaultwerte festlegen. Wenn der Nutzer eine Eingabe macht diese aber wiederum löscht soll wieder der Default Wert angezeigt werden. Dieser Default Wert hängt von einer Auswahl aus einer Dropdownliste der jeweiligen Spalte (C13:N13) ab. z. B. ist der Wert für Auswahl 1: 1.2, derjenige für Auswahl 2 1.4 etc.
Der Wert in der jeweiligen Zelle von C4 bis N4 wird danach in den Zellen C17 bis N17 für eine Berechnung verwendet.
Wie lautet der vba Code hierfür einaml ohne die Abhängigkeit der Dropdownliste und einmal mit.
Leide habe ich nicht viel Erfahrung was das programmieren von vba im Excel angeht.
Anbei der Code für ein Gif der Excel Datei:
Userbild
Vielen Dank für eure Hilfe.
Grüsse
Lucas
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Default Wert in Zellen Festlegen
18.08.2017 16:19:58
Hajo_Zi
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Schau mal hier
Eine hochgeladene Arbeitsmappe erhöht die Wahrscheinlichkeit, dass Du eine Lösung für Dein Problem erhältst.
Erstelle folglich bitte eine Demomappe, aus der deine Aufgabenstellung klar erkennbar ist und lade diese hoch.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, solltest du diese Daten anonymisieren bzw. pseudonymisieren.
Falls Du den Download des Forums nicht benutzen möchtest beachte bitte: von unsicheren Servern file-upload lade ich keine Datei herunter (lt. Einschätzung meines Virenprogramms)

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Anzeige
AW: Default Wert in Zellen Festlegen
18.08.2017 16:24:33
Lucas
Hallo Hajo_Zi
Vielen Dank für den Hinweis. habe nun die sensiblen Daten rausgenommen und das ExcelFile angehängt.
https://www.herber.de/bbs/user/115566.xlsx
Grüsse
Lucas
AW: Default Wert in Zellen Festlegen
18.08.2017 16:26:30
Hajo_Zi
Halo Lucas,
Gut das geht nur per VBA, das hast Du ja mit Deiner Datei abgelehnt.
Ich bin dann raus.
Gruß Hajo
Anzeige
wo ist der Default Wert?
18.08.2017 17:46:23
Tino
Hallo,
wo sollen die Standardwerte (1.2, 1.4 ...) herkommen?
Gruß Tino
AW: Default Wert in Zellen Festlegen
21.08.2017 08:20:41
Lucas
Hallo Sepp
Danke für die Hilfe könntest du mir eine kleine Erklärung schreiben was der Code genau bedeutet. kann so nicht ganz nachvollziehen ob es so stimmt.
Also die Defaultwerte sollten auch im VBA code enthalten sein und abhängig von der Auswahl im Dropdown menu (C13:N13 sein also wenn Auswahl 1 dann 1.2, wenn Auswahl 2 dann 1.4 etc. wenn keine Auswahl gemacht wurde können die Zellen leer bleiben.
Anzeige
AW: Default Wert in Zellen Festlegen
22.08.2017 19:54:34
Sepp
Hallo Lucas,
dann so.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, varRet As Variant
Dim varValues(12) As String
On Error GoTo ErrExit

varValues(0) = "1.2"
varValues(1) = "1.4"
varValues(2) = "1.6"
varValues(3) = "1.8"
varValues(4) = "2.0"
varValues(5) = "2.2"
varValues(6) = "2.4"
varValues(7) = "2.6"
varValues(8) = "2.8"
varValues(9) = "3.0"
varValues(10) = "3.2"
varValues(11) = "3.4"
varValues(12) = "3.6"

If Not Intersect(Target, Range("C13:N13")) Is Nothing Then
  Application.EnableEvents = False
  For Each rng In Intersect(Target, Range("C13:N13"))
    If rng <> "" Then
      varRet = Application.Match(rng, Range("C16:N16"), 0)
      If IsNumeric(varRet) Then rng.Offset(1, 0) = varValues(varRet - 1)
    Else
      rng.Offset(1, 0) = ""
    End If
  Next
End If

ErrExit:
Application.EnableEvents = True
End Sub

Der Code vergleicht die Auswahl mit den Listeneinträgen (MATCH) und gibt je nach Index den entsprechenden Eintrag aus dem Array (varValues) zurück.
Gruß Sepp

Anzeige
AW: Default Wert in Zellen Festlegen
23.08.2017 10:48:25
Lucas
Hallo Sepp
Vielen Dank fast Perfekt. Ich hab noch den Code so abgeändert, dass die jeweiligen Values in Zeile C4:C13 auftauchen in dem ich den Offset angepasst habe. Was noch fehlt ist wenn ich diese vorgegebene Zahl z. B. varValues(0) = "1.3" im excel file lösche und durch eine andere Zahl manuell ersetze z. B. 1.6 und diese dann wieder lösche dass dann wider die 1.3 auftaucht. Was müsste man noch ändern? In der Zeile C5:N5 soll zusätzlich noch ein default Wert festgelegt werden der jedoch immer z. B. 9.4 beträgt was muss ich hierbei am Code? Kann ich den Code im gleichen Fenster einfügen wie der andere?
Vielen dank.
Grüsse
Lucas
So siehts im Moment aus:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, varRet As Variant
Dim varValues(11) As String
On Error GoTo ErrExit
varValues(0) = "1.3"
varValues(1) = "1.5"
varValues(2) = "0.8"
varValues(3) = "1.2"
varValues(4) = "1.0"
varValues(5) = "1.5"
varValues(6) = "1.2"
varValues(7) = "0.8"
varValues(8) = "1.8"
varValues(9) = "2.0"
varValues(10) = "2.4"
varValues(11) = "2.5"
If Not Intersect(Target, Range("C13:N13")) Is Nothing Then
Application.EnableEvents = False
For Each rng In Intersect(Target, Range("C13:N13"))
If rng  "" Then
varRet = Application.Match(rng, Range("C16:N16"), 0)
If IsNumeric(varRet) Then rng.Offset(-9, 0) = varValues(varRet - 1)
Else
rng.Offset(-9, 0) = ""
End If
Next
End If
ErrExit:
Application.EnableEvents = True
End Sub

Anzeige
AW: Default Wert in Zellen Festlegen
23.08.2017 21:01:22
Sepp
Hallo Lucas,
mein erster Code zog die Werte aus der Tabelle, da hast du gesagt "sollte im VBA hinterlegt sein"! Jetzt habe ich die Werte im Code hinterlegt und du willst sie wieder aus der Tabelle.
Schön langsam solltest du dich entscheiden!
Beschreibe nochmal genau, was wann wo und warum erscheinen soll, am besten anhand deiner Beispieldatei! Und zwar so, dass sich auch ein Unwissender vorstellen kann, was du willst!
Gruß Sepp

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Default Werte in Excel Zellen Festlegen


Schritt-für-Schritt-Anleitung

Um in Excel Defaultwerte für bestimmte Zellen festzulegen, kannst du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und die VBA-Umgebung:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge einen neuen Code ein:

    • Wähle im Projektfenster die entsprechende Arbeitsmappe aus.
    • Klicke auf "Einfügen" und wähle "Modul".
    • Füge den folgenden VBA-Code ein:
    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim rng As Range, varRet As Variant
       Dim varValues(11) As String
       On Error GoTo ErrExit
    
       varValues(0) = "1.2"
       varValues(1) = "1.4"
       ' Füge weitere Defaultwerte hinzu...
    
       If Not Intersect(Target, Range("C13:N13")) Is Nothing Then
           Application.EnableEvents = False
           For Each rng In Intersect(Target, Range("C13:N13"))
               If rng <> "" Then
                   varRet = Application.Match(rng, Range("C16:N16"), 0)
                   If IsNumeric(varRet) Then
                       rng.Offset(1, 0) = varValues(varRet - 1)
                   Else
                       rng.Offset(1, 0) = ""
                   End If
               End If
           Next
       End If
    ErrExit:
       Application.EnableEvents = True
    End Sub
  3. Schließe den VBA-Editor:

    • Speichere deine Änderungen und schließe den Editor.
  4. Teste die Änderungen:

    • Gib einen Wert in die Zellen C13:N13 ein und lösche ihn danach, um zu sehen, ob der Standardwert zurückkehrt.

Häufige Fehler und Lösungen

  • Fehler: Der Defaultwert wird nicht angezeigt, wenn die Zelle leer ist.

    • Lösung: Stelle sicher, dass Application.EnableEvents auf True gesetzt ist, damit die Änderungen erkannt werden.
  • Fehler: Dropdown-Listen funktionieren nicht.

    • Lösung: Überprüfe, ob die Datenquelle für die Dropdown-Listen korrekt definiert ist.

Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch mit Formeln arbeiten. Eine Möglichkeit ist die Verwendung von WENN()-Funktionen, um Defaultwerte anzuzeigen, wenn eine Zelle leer ist. Beispiel:

=WENN(A1=""; "1.2"; A1)

Praktische Beispiele

Angenommen, du möchtest in den Zellen C4:N4 Defaultwerte festlegen, die von einer Dropdown-Liste in C13:N13 abhängen. Hier ist ein Beispiel:

  1. Dropdown-Liste einfügen:

    • Wähle die Zellen C13:N13 aus.
    • Gehe zu DatenDatenüberprüfungListe und wähle die Werte aus.
  2. Code hinzufügen:

    • Verwende den oben angegebenen VBA-Code und passe die varValues-Array-Werte an, je nach den Optionen in deiner Dropdown-Liste.

Tipps für Profis

  • Verwende benannte Bereiche: Dies erleichtert die Verwaltung von Dropdown-Listen und Standardwerten.
  • Debugging: Nutze Debug.Print im VBA-Code, um Werte während der Ausführung anzuzeigen, was dir hilft, Fehler schneller zu finden.
  • Schutz der Arbeitsmappe: Überlege, die Zellen, die die Defaultwerte enthalten, vor Bearbeitung zu schützen, damit die Benutzer nicht versehentlich diese Werte ändern.

FAQ: Häufige Fragen

1. Wie kann ich einen Default-Wert für eine Zelle festlegen? Du kannst dies mit VBA tun, indem du einen Code verwendest, der auf Änderungen in der Zelle reagiert.

2. Was passiert, wenn ich einen Default-Wert manuell überschreibe? Wenn du den Wert überschreibst und danach löschst, wird der Defaultwert zurückgesetzt, solange der VBA-Code korrekt implementiert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige