Namensgleichheit kopierter Shapes
29.10.2024 12:47:10
Selfmade
ich bin Hobbyprogramierer und habe für meine Arbeitsstelle eine Excelanwendung erstellt,
aus der heraus Mitarbeiter Bestell - Emails per Outlook versenden können.
Das hat bisher anstandslos funktioniert.
Nach Click auf ein Shape innerhalb der Bestellzeile, welches als Sendebutton fungiert, wird einen Email versendet und eine neue Bestellzeile angelegt.
Anschließend werden die Zellen der neuen Bestellzeile wieder für neue Einträge geleert.
Bisher hatten die neu kopierten Shapes immer einen neuen Namen erhalten.
Nun haben jedoch die kopierten Shapes den gleichen Namen wie die Ausgangsshapes, was zu Problemen führt.
Der einzige Unterschied zu meinem Arbeitscomputer ist, dass ich hier kein Outlook verwende, aber auch in der Vergangenheit hat es funktioniert.
Sub ZeileKopierenUndEinfügen()
'Was ist i - > i ist die Zeile SendEmail + 1
'Bestimmen in welcher Reihe auf OK Button Sendebutton geklickt wurde
OKBtn1Reihe = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
i = OKBtn1Reihe
With Application
.EnableEvents = False
Range("A" & i & ":U" & i).Select
Selection.AutoFill Destination:=Range("A" & i & ":U" & i + 1), Type:=xlFillDefault
Range("A" & i & ":U" & i + 1).Select
Range("A" & i + 1).Select
' Die Daten der vorherigen Zeile werden in der kopierten Zeile gelöscht - > Blancozeile
ActiveSheet.Range(ActiveSheet.Cells(OKBtn1Reihe + 1, 2), ActiveSheet.Cells(OKBtn1Reihe + 1, 11)).Value = ""
'ActiveSheet.Range(ActiveSheet.Cells(OKBtn1Reihe + 1, 14), ActiveSheet.Cells(OKBtn1Reihe + 1, 16)).Value = ""
ActiveSheet.Range(ActiveSheet.Cells(OKBtn1Reihe + 1, 14), ActiveSheet.Cells(OKBtn1Reihe + 1, 15)).Value = ""
'***Focus auf Datum der neuen Eintragszelle setzen
'LetzteZeile : = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Range("B" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row).Select
Range("B" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row).Value = Date
.EnableEvents = True
End With
End Sub
Ich habe versucht die Shapes alle in einer Schleife umzubenennen, was auch funktioniert, beim letzten oder nach dem letzen Shape erhalte ich jedoch einen Fehler 1004.
Sub neuMarkieren()
Dim sh As Shape
For Each sh In Me.Shapes
sh.Name = "Marker" & sh.TopLeftCell.Address(0, 0)
Next sh
End Sub
Wenn ich mir die Namen der Shapes anzeigen lassen, tauchen später einige doppelt auf und als letztes ein Dropdown,
wobei ich in einer Zelle ganz oben ein Dropdownmenü mit Namensauswahl für den Emailabsender habe.
Eine andere Variante wäre noch, alles über einen einzigen Sendebutton zu machen, wobei die Anwender dann nach oben scrollen müßten
und die Anwendung umprogrammiert werden müßte.
Gibt es dazu eine irgendeine Lösung?
Anzeige