Übersetzte Kommentare einfügen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Frame
Bild

Betrifft: Übersetzte Kommentare einfügen
von: Arnold
Geschrieben am: 21.04.2015 09:02:53

Hallo zusammen
Bin neu hier und stelle gleich eine - für mich wenigstens - knifflige Frage:
Ich habe eine Exceltabelle "Waflu" in welcher in den verschiedensten Spalten A - Z bei unterschiedlichsten Zellen Kommentare in Deutsch erfasst sind.
Mittels einem VBA habe ich diese ins Tabellenblatt "Kommentar-Text" ausgelesen.
Die ausgelesenen Kommentare habe ich auf FR & IT übersetzt und möchte nun die übersetzten Kommentare zu dem bereits erfassten Deutschen Kommentar einfügen.
https://www.herber.de/bbs/user/97193.xlsm
Wie gesagt, den Code für aus Auslesen klappt prima, wie ihr im Tabellenblatt "Kommentar-Text" sehen könnt, mit ZellBezeichnung.
Leider erhalte ich beim Code für das Einfügen der übersetzten Daten eine Fehlermeldung.
Ich habe an dem Code herumgespielt, krieg den aber nicht hin.
Hier mein Code zum Einfügen:

Sub KommentarEinfügen()
Dim notiz As Comment
Dim intz As Integer
Dim intMax As Integer
Dim strBezug As String
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
  For Each notiz In wks.Comments
    notiz.Delete
  Next notiz
Next wks
With Sheets("Kommentar-Text") 'Name des Tabellenblattes in welchem die Kommentare erfasst sind
 intMax = .UsedRange.Rows.Count
 
 For intz = 2 To intMax
 strBezug = Sheets("Kommentar-Text").Cells(intz, 2).Value
  Sheets(.Cells(intz, 1).Value).Range(strBezug).AddComment
  (.Cells(intz, 4).Value)
 Next intz
End With 
End Sub
Kann mir jemand von euch helfen?
Vielen Dank euch & nen sonnigen Tag
Arnold

Bild

Betrifft: AW: Übersetzte Kommentare einfügen
von: Nepumuk
Geschrieben am: 21.04.2015 09:42:49
Hallo,
(.Cells(intz, 4).Value)
du hast die Spalte 4 für die Texte angegeben es ist aber die Spalte 8. Excel mag keine leeren Kommentare einfügen.
Gruß
Nepumuk

Bild

Betrifft: AW: Übersetzte Kommentare einfügen
von: Arnold
Geschrieben am: 21.04.2015 09:47:48
Hallo Nepumuk
Vielen Dank für deine umgehende Antwort und Tipp.
Hab das natürlich sofort geändert und erhalte nun aber die Fehlermeldung
"Fehler beim Komplimieren: Syntaxfeher" und die Zeile (.Cells(intz, 8).Value)
wird gelb markiert.
Danke für weitere Hilfe!
Arnold

Bild

Betrifft: AW: Übersetzte Kommentare einfügen
von: Nepumuk
Geschrieben am: 21.04.2015 09:50:11
Hallo,
die gehört auch in die Zeile darüber, hinter AddComment.
Gruß
Nepumuk

Bild

Betrifft: AW: Übersetzte Kommentare einfügen
von: Arnold
Geschrieben am: 21.04.2015 09:57:22
Hallo Nepumuk, Hallo Franz
Nepumuk
Vielen Dank für deinen wertvollen Hinweise, habes nun "geschnallt" Code nach deinen Vorgaben angepasst und es funktioniert!
Franz
Dein ausgeschmückter Code ist ja erste Sahne. So sieht der rückgelesene Kommentar wirklich sehr gut aus.
Viiiiiiiiiiiielen Dank euch beiden für eure wertvolle Unterstützung!

Bild

Betrifft: AW: Übersetzte Kommentare einfügen
von: Wolfgang
Geschrieben am: 21.04.2015 09:46:54
Moin Moin, die AddComment-Zeile scheint korrekt zu sein. Bitte markiere die Zeile, in der der Fehler auftritt und die genaue Fehlermeldung dazu!
Gruß, Wolfgang

Bild

Betrifft: AW: Übersetzte Kommentare einfügen
von: fcs
Geschrieben am: 21.04.2015 09:51:07
Hallo Arnold,
das Grundproblem hat nepumuk ja schon beschrieben.
Ich hab dein Makro auch nochmals ein wenig ausgeschmückt inkl. Formatierung der Kommentarbox..
Außerdem sollte man Variablen für Zeilennummern generell als Long deklarieren, Da Tabellen mehr Zeilen haben als der Zahlenbereich für Integer-Variablen.
Gruß
Franz

Sub KommentarEinfügen()
  Dim notiz As Comment
  Dim lngZ As Long
  Dim lngMax As Long
  Dim strBezug As String
  Dim wks As Worksheet
  
  For Each wks In ActiveWorkbook.Worksheets
    For Each notiz In wks.Comments
      notiz.Delete
    Next notiz
  Next wks
  
  With Sheets("Kommentar-Text") 'Name des Tabellenblattes in welchem die Kommentare erfasst  _
sind
    lngMax = .Cells(.Rows.Count, 1).End(xlUp).Row
   
    For lngZ = 2 To lngMax
      strBezug = Sheets("Kommentar-Text").Cells(lngZ, 2).Value
      Sheets(.Cells(lngZ, 1).Value).Range(strBezug) _
        .AddComment .Cells(lngZ, 8).Value
    Next lngZ
  End With
 
End Sub
Sub KommentarEinfügen_Neu()
  Dim notiz As Comment
  Dim lngZ As Long
  Dim lngMax As Long
  Dim strBezug As String
  Dim wks As Worksheet
  Dim Zelle As Range
  
  For Each wks In ActiveWorkbook.Worksheets
    For Each notiz In wks.Comments
      notiz.Delete
    Next notiz
  Next wks
  
  With Sheets("Kommentar-Text") 'Name des Tabellenblattes in welchem die Kommentare erfasst  _
sind
    lngMax = .Cells(.Rows.Count, 1).End(xlUp).Row
   
    For lngZ = 2 To lngMax
      strBezug = Sheets("Kommentar-Text").Cells(lngZ, 2).Value
      Set Zelle = Sheets(.Cells(lngZ, 1).Value).Range(strBezug)
      Zelle.AddComment "Koordination" _
        & Chr(10) & "DE: " & .Cells(lngZ, 3).Value _
        & Chr(10) & "FR: " & Mid(.Cells(lngZ, 5).Value, 3) _
        & Chr(10) & "IT: " & Mid(.Cells(lngZ, 7).Value, 3)
      Set notiz = Zelle.Comment
      With notiz
        With .Shape
          .TextFrame.Characters(1, 12).Font.Bold = True
          .Width = 200
          .Height = 100
        End With
      End With
    Next lngZ
  End With
 
End Sub


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Übersetzte Kommentare einfügen"