Hallo zusammen,
ich habe ein kleines Excel VBA Problem und hoffe das mir hier jemand helfen kann.
Ich habe in Excel unter einem Tabellenblatt einen Code hinterlegt der Veränderungen an dem aktiven Tabellenblatt als Kommentare (jeweilige Zelle) kennzeichnet.
Da ich diesen Code in jede neue Excel Tabelle von „Hand“ reinkopieren muss suche ich jetzt eine Lösung den hinterlegten Code eines Tabellenblattes in ein anderes (das aktuelle) per Makro reinzukopieren…
Könnt Ihr mir da helfen???
Vorab vielen Dank für eure Hilfe!
Grüßle
Buddy
Grüezi Buddy
Ich habe in Excel unter einem Tabellenblatt einen Code
hinterlegt der Veränderungen an dem aktiven Tabellenblatt als
Kommentare (jeweilige Zelle) kennzeichnet.
Da ich diesen Code in jede neue Excel Tabelle von „Hand“
reinkopieren muss suche ich jetzt eine Lösung den hinterlegten
Code eines Tabellenblattes in ein anderes (das aktuelle) per
Makro reinzukopieren…
Könnt Ihr mir da helfen???
Zäume das Pferd von der anderen Seite her auf:
Kopiere das komplette Tabellenblatt in die neue Mappe und übertrage dann nur die neuen Daten dort hinein.
Dabei wird der VBA-Code in die neue Mappe ‚mitgenommen‘.
Mit freundlichen Grüssen
Thomas Ramel
Danke für den Tipp!
leider geht das nicht.
Es sind mehrere Kollegen die per Button ein Bereinigungsmakro in Excel starten sollen. Während diesem Macro sollen dann die geänderten Zellen mittels eines Kommentares markiert werden. Das funktioniert auch, nur kommen die zu Bearbeitenden Dateien von extern und werden per Doppelklick geöffnet. Genau da muss dann die Bereinigung erfolgen, da kopieren mir (bei manchen Kolegen) zu gefährlich ist…
Gibt es keine Möglichkeit diesen Code in Excel so zu verankern das er einfach immer und in jeder Exceldatei vorhanden ist??? wie ja auch die Buttons die man erstellen kann…
Hallo,
leider geht das nicht.
Gibt es keine Möglichkeit diesen Code in Excel so zu verankern, das er einfach immer und in jeder Exceldatei vorhanden ist??? wie ja auch die Buttons die man erstellen kann…
Ach so, Du willst auf so 'was hinaus wie eine Word-Dokumentvorlage. Also:
-
In Word hat jedes Dokument eine Dokumentvorlage
-
Diese Dokumentvorlage ist ständig mit dem Dokument verbunden, m.a.W.: wenn ich mein Dokument öffne, ist die dazugehörige Dokumentvorlage parallel und im Hintergrund aktiv und man kann auf ihre Makros und Symbolleisten und Formatvorlagen und … zurückgreifen - unabhängig von dem, was im Dokument gespeichert ist.
-
In Excel ist das nicht so: zwar hat jedes Workbook seine Vorlage (Mappe.xlt bei alten Versionen, bei neueren weiß ich’ s nicht und bitte um Erläuterung). Doch die .xlt erzeugt nur eine Kopie des Workbooks. Sie ist nicht per se aktiv.
-
Problem bei Dir offensichtlich: die Kunden-Workbooks enthalten Deine Makros nicht.
-
Es gibt in Excel aber eine Vorlage, die permanent aktiv ist und eine rudimentär ähnliche Funktion hat wie jede .dot bei einem .doc: Personl.xls.
Könnte es Dir helfen, wenn Du Deine Prozeduren in Deiner Firma bei jedem Benutzer in seiner Personl.xls abspeicherst? Wenn diese Prozeduren nicht den Alltagsbetrieb des Benutzers durcheinanderbringen, indem sie auch bei anderen als den zu korrigierenden Workbooks aktiv werden und unerwünschte Ergebnisse produzierten, hielte ich das für die Lösung des Problems.
HTH.
Markus
_____________
Und Sterne…
Grüezi Buddy
leider geht das nicht.
Das könntest Du doch aber auch per VBA tun…
Es sind mehrere Kollegen die per Button ein Bereinigungsmakro
in Excel starten sollen. Während diesem Macro sollen dann die
geänderten Zellen mittels eines Kommentares markiert werden.
Das funktioniert auch, nur kommen die zu Bearbeitenden Dateien
von extern und werden per Doppelklick geöffnet. Genau da muss
dann die Bereinigung erfolgen, da kopieren mir (bei manchen
Kolegen) zu gefährlich ist…
Hmmm, wann denn nun - beim öffnen mit Doppelklick oder doch erst beim Klick auf den Button?
Gibt es keine Möglichkeit diesen Code in Excel so zu verankern
das er einfach immer und in jeder Exceldatei vorhanden ist???
wie ja auch die Buttons die man erstellen kann…
Nein, genau so geht das nicht - aber Du kannst eine Datei mit dem Code drin, die auch gleich einen Button anlegt als AddIn speichern und dieses dann bei/von deinen Kollegen installieren (lassen). Dann steht der Code und der Button immer zur Verfügung und kann genutzt werden.
Mit freundlichen Grüssen
Thomas Ramel
Hallo,
vielen Dank erstmal für die schnelle Hilfe.
Ich hab die betreffende Prozedur in der PERSONL.XLS unter „dieseArbeitsmappe“ gespeichert!
Aber, wie bekomme ich sie in "dieseArbeitsmappe von der zu bearbeitenden Datei?
Hier die Prozedur um die es geht (vielleicht etwas einfacher wenn ich sie reinstelle):
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Dim r As Range
'Für jede geänderte Zelle
For Each r In Target
Call AenderungskennungAlsKommentar®
Next
Set r = Nothing
End Sub
'********************************************************
Private Function AenderungskennungAlsKommentar(r As Range)
'*** für die geänderte Zelle wird im Kommentar
'*** Benutzerkennung und Änderungszeitpunkt
'*** eingetragen
'*** Ist kein Kommentar vorhanden, wird ein neuer angelegt
Dim s As String, s_user As String
'ggf. vorhandenen Kommentar lesen
On Error Resume Next
s = r.Comment.Text
If Err.Number 0 Then
Err.Clear
'neuen Kommentar anlegen
r.AddComment
r.Comment.Visible = False
s = „“
End If
On Error GoTo 0
'Wenn Kommentar vorhanden, Zeilenumbruch anfügen
If s „“ Then s = s & vbLf
'Letzten Benutzer feststellen
s_user = ActiveWorkbook.BuiltinDocumentProperties(7)
'Datum und Benutzer an Kommentar anfügen
s = s & Format(Now(), "dd.mm.yyyy hh:nn: ") & s_user
'Kommentar eintragen
r.Comment.Text s
End Function
Irgendjemand ne Idee???
Vorab vielen Dank!!!