Registriert seit: 03.05.2016
Version(en): 365 ProPlus - Version1902
hm,... so, dann jetzt die "Echt-Datei" gekürzt. Wenn ich exakt diese Datei öffne und das darin enthaltene Makro ausführe, erhalte ich den Fehlercode 400 in Tabelle 6 Es funktioniert also bis Zeile 7 im Tabellenblatt 1. Ab Warenlieferant "Ferdinand Bernhofer GesmbH" steht das Makro und der Fehler 400 kommt,..
Musterdatei 3.xlsm (Größe: 15,18 KB / Downloads: 13)
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
bei mir kommt keine 400-Fehlermeldung sondern 1004 und in der Erläuterung steht. Stellen Sie sicher, das der eingegebene Namen maximal 31 Zeichen aufweist und das ist bei dem Eintrag nicht mehr der Fall.
Gruß Stefan Win 10 / Office 2016
Registriert seit: 14.04.2014
Version(en): 2003, 2007
09.02.2017, 10:21
(Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2017, 10:21 von atilla.)
Hallo, so wie Stefan es festgestellt hat, liegt es an der Länge der Namen. Kannst ja testen , indem Du die Namen so zuweist: Code: ws.Name = .Cells(i, "C") & Chr(32) & Left(.Cells(i, "D"), 6)
Außerdem solltest Du den Code unbedingt in ein allgemeines Modul packen!!!
Gruß Atilla
Registriert seit: 03.05.2016
Version(en): 365 ProPlus - Version1902
hm,... ok. Also mit dem 6) in dem Code begrenze ich den Namen dann auf 6 Stellen, richtig? Wenn ich also maximal 31 Stellen habe, könnte ich die 6) auf maximal 31) umstellen? und: Was meinst du mit "einem allgemeinem Modul"???? Code umgeschrieben,... Jetzt läuft es schonmal viel weiter. Meine echte Datei hat allerdings 292 Zeilen. Und nun kommt Fehlercode 400 in Zeile 132 :22: Zudem sollte der Name der Lieferanten im Tabellenblatt 1 schon komplett bleiben und nicht auf 6 Stellen gekürzt werden. Die Namen der Tabellenblätten sind nicht so wichtig. da könnte auch zb nur die Nummer aus Spalte C drinn stehen (wenn das hilft?) :20:
Registriert seit: 14.04.2014
Version(en): 2003, 2007
09.02.2017, 11:06
(Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2017, 11:15 von atilla.)
Hallo, schau mal: Wie und wo fügt man einMakro einWas den Fehler betrifft, gehe ich davon aus, dass Du an Speichergrenzen kommst. Du kannst nur so viele Tabellen einfügen, wie es der Arbeitsspeicher verarbeiten kann. Lies dazu hier: Spezifikationen und Beschränkungenund in folgender Zeile des Codes: ActiveSheet.Hyperlinks.Add Anchor:=.Cells(i, 4), Address:="", SubAddress:= _ "'" & ws.Name & "'!A1", TextToDisplay:= _ ws.NameDie rot markierten Stelle ersetzt Du mit: .Cells(i, 4) ,unbedingt mit dem Punkt vor Cells
Gruß Atilla
Registriert seit: 03.05.2016
Version(en): 365 ProPlus - Version1902
HA! :21: Fehler gefunden! (Leider aber noch nicht die Lösung gefunden,...) Das Problem liegt offenbar darin, wenn das Makro ein Tabellenblatt mit dem selben Namen eines bereits bestehenden Blattes erstellen soll. Ich habe zum testen einfach mal den ersten Lieferanten doppelt (also in einer weiteren Zeile) eingetragen, und dann kam dieser Fehlercode (400) gleich beim ersten Lieferanten! :19: So weit so gut! Jetzt ist nur mehr die Frage: Kann man das im Code irgendwie ergänzen? das man zb sagt:" Wenn ein Tabellenblatt erstellt wird, welches bereits den gleichen namen besitzt, dann schreib "_2" oder "_3" dazu?
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo, zumindest der Anhang der _2 sollte in Verbindung mit der Funktion funktionieren Code: Sub Main() Dim i As Long Dim ws As Worksheet Dim strAnhang As String
With Sheets(1) For i = 3 To .Cells(Rows.Count, "A").End(xlUp).Row Set ws = Worksheets.Add(after:=Sheets(Sheets.Count)) strAnhang = Left(.Cells(i, "C") & Chr(32) & .Cells(i, "D"), 31) If BlattExists(strAnhang) Then strAnhang = strAnhang & "_2" ws.Name = strAnhang ' If BlattExists(ws.Name) Then ws.Name = ws.Name & "_2" ActiveSheet.Hyperlinks.Add Anchor:=.Cells(i, 4), Address:="", SubAddress:= _ "'" & ws.Name & "'!A1", TextToDisplay:= _ ws.Name Next i End With End Sub
Function BlattExists(BlattName As String) As Boolean On Error Resume Next BlattExists = Not ThisWorkbook.Worksheets(BlattName) Is Nothing On Error GoTo 0 End Function
Gruß Stefan Win 10 / Office 2016
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Stefan,
das "zumindest deutet darauf hin, dass Du den Fehler 400 auch nicht reproduzieren konntest, trotzt doppelter Namen, ist das richtig.
Ich erhalte immer Fehler 1004, so wie Du.
Gruß Atilla
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Atilla,
ich konnte den Fehler 400 auch nicht reproduzieren. Das 'zumindest' bezog sich nur auf den Fehler wenn der Tabellenname bereits einmal existiert. Gib es das Tabellenblatt bereits zweimal (als Beispiel: Ferdinand Bernhofer GesmbH und Ferdinand Bernhofer GesmbH_2) läuft mein Code auch in einen Fehler.
Gruß Stefan Win 10 / Office 2016
Registriert seit: 03.05.2016
Version(en): 365 ProPlus - Version1902
Hallo!
So, nachdem nur 4 oder 5 Lieferanten doppelt waren, hab ich deren Lieferantennummer einfach manuell um ein _1 bzw _2 ergänzt. Formel laufen lassen und alles wunderbar konvertiert!
VIELEN VIELEN DANK euch allen!!!! :15:
|