VBS - "Werte aktualisieren"
rider
- programmiertechnik
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
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
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
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
Hello,
Ja, logisch - jetzt fällt mir's auch auf. Verwende mal das Stück Code (und finde den Unterschied ;-)):
*lol*
MfG
Rouven
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
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!
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
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
Joo, hat geklappt. Dankeschön!
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
Hab' im Moment wenig Zeit, deshalb nur geraten:
Hab jetzt :
If Traegername = False Then Exit SubDas 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
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