Hallo
wie geht das dass ich in einem Excel Dokument alle 50 - 100 Kommentare, überall wo 2018 vorkommt das in 2019 ändere?
Hallo
wie geht das dass ich in einem Excel Dokument alle 50 - 100 Kommentare, überall wo 2018 vorkommt das in 2019 ändere?
Du kannst die Dateinamenserweiterung der Excel-Datei ("xlsx") in "zip" umbenennen.
Die so entstandene ZIP-Datei kannst Du mit dem Windows-Explorer entpacken.
Im Ordner "xl" liegt die Datei "comments1.xml", diese kannst Du mit einem geeigneten Editor (z.B. Notepad++) bearbeiten und darin mit Suchen/Ersetzen die Änderungen vornehmen.
Anschließend diese XML-Datei speichern und alles wieder als ZIP-Datei einpacken.
Hinterher die Dateinamenserweiterung der ZIP-Datei wieder in "xlsx" umbennen.
Wenn Du die Datei nun in Excel öffnest, wird evtl. von Excel noch eine Reparatur durchgeführt. Danach sollten die Kommentare den geänderten Inhalt anzeigen.
Gruß, mawe2
PS: Ich würde solche Kommentare vermeiden, die man in dieser Art und Weise jährlich aktualisieren muss. Dafür wäre jetzt eine gute Gelegenheit...
einfacher gehts nicht?
also da kann ich in allen Kommentaren wo 2018 erscheint, daraus automatisch 2019 machen?
einfacher gehts nicht?
Evtl. mit dem VBA-Code, den hddiesel gepostet hat?
(Welcher der beiden Wege für Dich einfacher ist, kann ich nicht beurteilen.)
Hallo Stefan H1,
per Makro geht es.
Teste mit einer kopie deiner Datei, Spalte und Bereich anpassen
und die Datei als .xlsm speichern, da Datei mit Makro.
Sub Kommentar_Eintrag_ändern()
Dim TxIst As String
Dim TxNew As String
Dim Zei As Long
Dim posA As Long
For Zei = 2 To 10
With ActiveSheet.Cells(Zei, "A")
If Not .Comment Is Nothing Then
TxIst = .Comment.Text
If InStr(.Comment.Text, ".2018") > 0 Then
posA = InStr(.Comment.Text, ".2018")
TxNew = Left(.Comment.Text, posA) & 2019 & Mid(.Comment.Text, posA + 5)
.ClearComments
.AddComment TxNew
End If
End If
End With
Next
End Sub
danke meine güte ist das komplziert
als xlms
also datei umbenennen in datei xlms
das reicht?
also datei umbenennen in datei xlms das reicht?
Nein.
Du musst die ursprüngliche XLSX-Datei als XLSM-Datei speichern.
Umbenennen reicht nicht.
danke ich glaube ich mache da einen fehler
ich öffne die datei gehe auf speichern unter udn habe von arbeitsmappe bis sontswas aber leider kein xlsm unter office 2010 oder ich bin blind
Hallo Stefan H1,
ich öffne die datei gehe auf speichern unter udn habe von arbeitsmappe bis sontswas aber leider kein xlsm unter office 2010 oder ich bin blind
Ja, die Auswahl gibt es schon seit 2007.
Siehe Auswahl bei Dateityp:
ich öffne die datei gehe auf speichern unter udn habe von arbeitsmappe bis sontswas aber leider kein xlsm unter office 2010 oder ich bin blind
Ich sag's mal so: Wenn Du schon Probleme hast, eine XLSX-Datei als XLSM-Datei zu speichern, wirst Du mit dem Thema "VBA in Excel" wahrscheinlich bisher noch keine Berührung gehabt haben (oder?).
Ob Du dann mit dem Code von hddiesel überhaupt etwas anfangen kannst, wage ich zu bezweifeln.
Hallo Stefan H1,
meinen Beitrag lesen, nicht überfliegen, dann geht das auch.
Hallo!
Du kannst den VBA-Code auch in der persönliche Makroarbeitsmappe speichern und, damit Du ihn schneller nutzen kannst, in die Schnellzugriffleiste legen. Dann kannst Du den Code in allen Arbeitsmappen nutzen.
Gruß, René
Hallo Stefan H1,
willst du noch die Schritart, die Größe, oder Fett oder nicht Fett,
vom alten Kommentar übernehmen, dann so:
Sub Kommentar_Eintrag_ändern()
Dim TxIst As String 'Alter Kommentar
Dim TxNew As String 'Neuer Kommentar
Dim Zei As Long 'Zeile
Dim posA As Long 'Position = Punkt vor Jaheszahl
Dim shComNa As String 'Font Name
Dim shComSi As Integer 'Font Sitze
Dim shComBo As Boolean 'Font Fett = True oder False
For Zei = 2 To 10
With ActiveSheet.Cells(Zei, "A")
If Not .Comment Is Nothing Then
TxIst = .Comment.Text
If InStr(.Comment.Text, ".2011") > 0 Then
posA = InStr(.Comment.Text, ".2011")
TxNew = Left(.Comment.Text, posA) & 2019 & Mid(.Comment.Text, posA + 5)
'Die Schriftart, Schriftgröße und Fettschrift, vom alten Kommentar übernehmen.
With .Comment.Shape.TextFrame.Characters.Font
shComNa = .Name
shComSi = .Size
shComBo = .Bold
End With
.ClearComments
.AddComment TxNew
'Die Schriftart, Schriftgröße und Fettschrift festlegen.
With .Comment.Shape.TextFrame.Characters.Font
.Name = shComNa
.Size = shComSi
.Bold = shComBo
End With
'Die Kommentargröße, an den Text anpassen.
With .Comment.Shape.TextFrame
.AutoSize = True
End With
End If
End If
End With
Next
End Sub
Oder du legst das Schrift- Format aller Kommentare selbst fest,
z.B. Verdana, Größe 9 und Fett:
Sub Kommentar_Eintrag_ändern_Format()
Dim TxIst As String 'Alter Kommentar
Dim TxNew As String 'Neuer Kommentar
Dim Zei As Long 'Zeile
Dim posA As Long 'Position = Punkt vor Jaheszahl
For Zei = 2 To 10
With ActiveSheet.Cells(Zei, "A")
If Not .Comment Is Nothing Then
TxIst = .Comment.Text
If InStr(.Comment.Text, ".2011") > 0 Then
posA = InStr(.Comment.Text, ".2011")
TxNew = Left(.Comment.Text, posA) & 2019 & Mid(.Comment.Text, posA + 5)
.ClearComments
.AddComment TxNew
'Die Schriftart, Schriftgröße und Fettschrift festlegen.
With .Comment.Shape.TextFrame.Characters.Font
.Name = "Verdana"
.Size = 9
.Bold = True
End With
'Die Kommentargröße, an den Text anpassen.
With .Comment.Shape.TextFrame
.AutoSize = True
End With
End If
End If
End With
Next
End Sub
Die Frage ist natürlich, wieweit kennst du dich in VBA aus, um den Rest selbst anzupassen, z.B. statt bis zur Zeile 10, bis zur letzten belegten Zeile die Kommentare zu ändern.
z.B. For Zei = 2 To ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
statt For Zei = 2 To 10
bist du wahnsinnig wo lernt man sowas ist ja irre du könntest ein eigenes excel programmieren
Hallo Stefan H1,
jeder fängt mal klein an, wenn er mit Excel arbeiten möchte, ohne seine Kolegen jedesmal um Hilfe fragen zu müssen, mache lernen es aber nie und benötigen immer die Hilfe anderer.
Wenn du schon Excel verwendest, dann befasse dich auch damit, aus Fehler lernt man schnell, wenn man sich etwas Mühe gibt, dann macht es auch spass Tabellen zu erstellen und damit zu arbeiten.