rider: VBS - "Werte aktualisieren"

Hallo!

Zum vorerst wirklich letzten Mal eine Frage an Jörg und Rouven (und natürlich alle anderen).

Ich hoffe ihr könnt euch noch an mein Problem erinneren.
Alles klappt soweit. Bis auf eine Sache die etwas seltsam ist.

Hier nochmal der aktuelle Code:

Sub CommandButton1_Click()
   Dim Traegername As String
   Dim objBlatt As Object
   Dim strQuellBlatt As String
   Dim sDate
   strQuellBlatt = "Haupt"

On Error GoTo FEHLER
   Set objBlatt = ThisWorkbook.Sheets(strQuellBlatt)
   On Error GoTo 0

Traegername = Application.InputBox("Nutzen Sie bitte ausschließlich Abkürzungen! ERLAUBT: z.B. SuP , NICHT ERLAUBT: z.B: Schmidt und Walter", "Name des neuen Trägers:", Traegername)
   If Traegername = "" Then Exit Sub

If Len(Traegername) > 31 Then
    MsgBox "Der Name ist zu lang, er darf nicht mehr als 31 Zeichen enthalten.", vbOKOnly + vbExclamation, "Schwerer Ausnahmefehler"
    Exit Sub
   End If

If Traegername Like "*[:&/?*[]*" Or Traegername Like "*]*" Then
    MsgBox "Im Namen ist ein ungültiges Zeichen enthalten. Folgende Zeichen sind nicht erlaubt: [ : \ & / ? * [ ] * ", vbOKOnly + vbExclamation, "Computerabsturz"
    Exit Sub
   End If

For Each objBlatt In ThisWorkbook.Sheets
        If objBlatt.name = Traegername Then
        MsgBox "Dieser Träger exsistiert bereits! Bitte nutzen Sie das vorhandene Arbeitsblatt!", vbOKOnly + vbExclamation, "Allgemeine Schutzverletzung"
        Exit Sub
    End If
Next

ThisWorkbook.Worksheets("Haupt").Copy After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
   ActiveSheet.name = Traegername

ActiveSheet.Range("D2").Value = Traegername

lngz = Sheets("Auswertungen").Cells(Rows.Count, 1).End(xlUp).Row + 1
   Sheets("Auswertungen").Cells(lngz, 1).Value = Traegername
   Sheets("Auswertungen").Cells(lngz, 3).FormulaLocal = "=ANZAHL(" & Traegername & "!A:A)"
   Sheets("Auswertungen").Cells(lngz, 4).FormulaLocal = "=ZÄHLENWENN(" & Traegername & "!G:G;Auswertungen!V27)"
   Sheets("Auswertungen").Cells(lngz, 5).FormulaLocal = "=ZÄHLENWENN(" & Traegername & "!H:H;Auswertungen!V27)"
   Sheets("Auswertungen").Cells(lngz, 6).FormulaLocal = "=ZÄHLENWENN(" & Traegername & "!I:I;Auswertungen!V27)"
   Sheets("Auswertungen").Cells(lngz, 7).FormulaLocal = "=ZÄHLENWENN(" & Traegername & "!J:J;Auswertungen!V27)"
   Sheets("Auswertungen").Cells(lngz, 8).FormulaLocal = "=ZÄHLENWENN(" & Traegername & "!K:K;Auswertungen!V27)"
   Sheets("Auswertungen").Cells(lngz, 9).FormulaLocal = "=ZÄHLENWENN(" & Traegername & "!N:N;Auswertungen!V27)"
   Sheets("Auswertungen").Cells(lngz, 10).FormulaLocal = "=ZÄHLENWENN(" & Traegername & "!M:M;Auswertungen!V27)"

sDate = Date
   ActiveSheet.Range("D3").Value = Date

Set objBlatt = Nothing
Exit Sub

FEHLER:
MsgBox "Fehler: Das zu kopierende Blatt " & strQuellBlatt & " existiert nicht.", vbOKOnly + vbCritical, "Schwerer Verlust"
End Sub

End Sub

---> Problem:
Wenn ich in die Inputbox einen zulangen Namen eingebe, kommt dann immer beim erstellen des Tabellenblattes das Popup "Werte aktualisieren". Dies kann man erst mit mehrmaligen! klicken auf Abbrechen wieder zu machen.

Wie kann ich das wegbekommen?

MfG

  1. Hi,

    Zum vorerst wirklich letzten Mal eine Frage an Jörg und Rouven (und natürlich alle anderen).

    das glaube ich nicht. ;-)

    ---> Problem:
    Wenn ich in die Inputbox einen zulangen Namen eingebe, kommt dann immer beim erstellen des Tabellenblattes das Popup "Werte aktualisieren". Dies kann man erst mit mehrmaligen! klicken auf Abbrechen wieder zu machen.

    Wie kann ich das wegbekommen?

    Das hat mit dem Code selbst nichts zu tun, das ist, so wie Du es beschreibst, eine Sache der Verknüpfungen. Anscheinend hast Du irgendwo eine Verknüpfung zu einer anderen Datei erstellt und wirst hier gefragt, auf welche Datei Du Dich beziehen möchtest. Prüfe deshalb erstmal alle Verknüpfungen und kontrolliere, ob die Quelldatei(en) am erwarteten Platz sind. Aber Vorsicht: Verknüpfungen können nicht nur in Formeln enthalten sein, sondern auch in Namen und Grafiken (Dagrammen).

    Im Menü Bearbeiten > Verknüpfungen findest Du auch eine Übersicht zu den verknüpften Dateien. Soll eine Verknüpfung gelöscht werden, kannst Du als Quelle die Datei angeben, in der sich die Verknüpfungen befinden.

    Hilft's?

    Viele Grüße

    Jörg

    1. Also das Feld "Verknüpfungen" ist bei mir gar nicht anwählbar (also scheinbar keine Verknüpfungen vorhanden).

      Es ist ja auch nicht so das die Meldung immer kommt.

      Gebe ich z.B. "xxx" in die Inputbox ein, funktioniert alles.
      Gebe ich allerdings z.B. "xxx xxx xxx" ein , kommt diese komische Meldung.

      mfg

      1. Es ist ja auch nicht so das die Meldung immer kommt.

        Gebe ich z.B. "xxx" in die Inputbox ein, funktioniert alles.
        Gebe ich allerdings z.B. "xxx xxx xxx" ein , kommt diese komische Meldung.

        Ja, logisch - jetzt fällt mir's auch auf. Verwende mal das Stück Code (und finde den Unterschied ;-)):

        lngZ = Sheets("Auswertungen").Cells(Rows.Count, 1).End(xlUp).Row + 1
           Sheets("Auswertungen").Cells(lngZ, 1).Value = Traegername
           Sheets("Auswertungen").Cells(lngZ, 3).FormulaLocal = "=ANZAHL('" & Traegername & "'!A:A)"
           Sheets("Auswertungen").Cells(lngZ, 4).FormulaLocal = "=ZÄHLENWENN('" & Traegername & "'!G:G;Auswertungen!V27)"
           Sheets("Auswertungen").Cells(lngZ, 5).FormulaLocal = "=ZÄHLENWENN('" & Traegername & "'!H:H;Auswertungen!V27)"
           Sheets("Auswertungen").Cells(lngZ, 6).FormulaLocal = "=ZÄHLENWENN('" & Traegername & "'!I:I;Auswertungen!V27)"
           Sheets("Auswertungen").Cells(lngZ, 7).FormulaLocal = "=ZÄHLENWENN('" & Traegername & "'!J:J;Auswertungen!V27)"
           Sheets("Auswertungen").Cells(lngZ, 8).FormulaLocal = "=ZÄHLENWENN('" & Traegername & "'!K:K;Auswertungen!V27)"
           Sheets("Auswertungen").Cells(lngZ, 9).FormulaLocal = "=ZÄHLENWENN('" & Traegername & "'!N:N;Auswertungen!V27)"
           Sheets("Auswertungen").Cells(lngZ, 10).FormulaLocal = "=ZÄHLENWENN('" & Traegername & "'!M:M;Auswertungen!V27)"

        Viele Grüße

        Jörg

        1. Hello,

          Ja, logisch - jetzt fällt mir's auch auf. Verwende mal das Stück Code (und finde den Unterschied ;-)):

          *lol*

          MfG
          Rouven

          --
          -------------------
          sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
          Buy when there's blood running in the street and sell when everyone is pounding at your door, clawing to own your equities  --  Wisdom on Wallstreet
          1. Hi Jörg,

            Ja, logisch - jetzt fällt mir's auch auf. Verwende mal das Stück Code (und finde den Unterschied ;-)):
            *lol*

            MfG
            Rouven

            Der ist wirklich gut erklärt...
            Indem man was entfernt, was man eigentlich nicht entfernt hat...

            Gruss gary

            1. Oh, jud jetzt klappt es!

              Aber vielleicht könnt ihr für mich als Neuling mal noch ne kleine Erklärung abgeben warum diese Meldung jetzt mit den eingefügten ' nicht mehr kommt.

              MfG und Danke für die Hilfe!

              1. Ach mist , jetzt ist mir doch noch was aufgefallen.

                Klickt man nämlich in der Inputbox auf Abbrechen generiert er ein neues Tabellenblatt mit Namen "Falsch" und erzeugt diesen Wert auch in der Auswertung. Wie kann ich das evntl. noch unterbinden?

                MfG

                1. Klickt man nämlich in der Inputbox auf Abbrechen generiert er ein neues Tabellenblatt mit Namen "Falsch" und erzeugt diesen Wert auch in der Auswertung. Wie kann ich das evntl. noch unterbinden?

                  Irgendwo hast Du diese Zeile zu stehen:

                  If Traegername = "" Then Exit Sub

                  Da kannst Du noch eine Zeile einbauen, mit der Du den Wert FALSE (nicht "Falsch") abfragst.

                  Viele Grüße

                  Jörg

                  1. Joo, hat geklappt. Dankeschön!

                  2. Klappt doch noch nicht.

                    Hab jetzt :
                    If Traegername = False Then Exit Sub

                    Das klappt auch. Also wenn ich auf Abbrechen klicke dann bricht er den Vorgang ab. Perfekt. Gibt man jetzt jedoch einen Namen in das Feld ein, so springt er in den Debugger und macht nicht weiter
                    mit folgender Meldung : Laufzeitfehler 13 : Typen unverträglich.

                    Dabei markiert er mir die obige Zeile.

                    MfG

                    1. Hab' im Moment wenig Zeit, deshalb nur geraten:

                      Hab jetzt :
                      If Traegername = False Then Exit Sub

                      Das klappt auch. Also wenn ich auf Abbrechen klicke dann bricht er den Vorgang ab. Perfekt. Gibt man jetzt jedoch einen Namen in das Feld ein, so springt er in den Debugger und macht nicht weiter
                      mit folgender Meldung : Laufzeitfehler 13 : Typen unverträglich.

                      Ändere mal die Zeile

                      Dim Traegername As String

                      in

                      Dim Traegername

                      Kurze Erklärung: Als String wird in Traegername eben ein Datentyp String erwartet, True oder False ist aber Boolean.

                      Viele Grüße

                      Jörg

              2. Aber vielleicht könnt ihr für mich als Neuling mal noch ne kleine Erklärung abgeben warum diese Meldung jetzt mit den eingefügten ' nicht mehr kommt.

                Weil Excel dadurch versteht, dass die einzelnen Begriffe zusammengehören. Ich vermute, dass Excel ohne die "'" das Ganze als Array behandelt und als einzelne Begriffe versteht.

                Viele Grüße

                Jörg