Microsoft Excel

Herbers Excel/VBA-Archiv

Makro for each Zelle In ActiveSheet | Herbers Excel-Forum


Betrifft: Makro for each Zelle In ActiveSheet von: Andreas Müller
Geschrieben am: 17.08.2012 20:33:19

Hallo,
ich habe funktionierendes Makro, welches mir Felder mit Kommentar das Kommentrafeld gleich groß macht. Jedoch sollte es für alle Tabellen in der Mappe funktionieren, nicht nur für die aktuell aktive.
Wie kann man das lösen?

Sub Comment()
Dim Zelle As Range
For Each Zelle In ActiveSheet.Cells.SpecialCells(xlCellTypeComments)
Zelle.Comment.Shape.Height = 150
Zelle.Comment.Shape.Width = 100
Next Zelle
End Sub

Zeile 3 In ActiveSheet.Cells.SpecialCells mit In ThisWorkbook.Worksheets ersetzen klappt nicht wirklich. Wer kann mir da einen Hinweis geben? Danke für Tips bzw. Hionweise
mfG
A. Müller

  

Betrifft: AW: Makro for each Zelle In ActiveSheet von: Rudi Maintaire
Geschrieben am: 17.08.2012 20:37:16

Hallo,

Sub Comment()
Dim Zelle As Range, wks as Worksheet
For Each wks in Worksheets
For Each Zelle In wks.Cells.SpecialCells(xlCellTypeComments)
Zelle.Comment.Shape.Height = 150
Zelle.Comment.Shape.Width = 100
Next Zelle
Next wks
End Sub

Gruß
Rudi


  

Betrifft: AW: Makro for each Zelle In ActiveSheet von: Josef Ehrensberger
Geschrieben am: 17.08.2012 20:52:04


Hallo Andreas,

Kommentare kann man auch direkt ansprechen.

Sub sizeComment()
  Dim objSh As Worksheet, objCmnt As Comment
  
  For Each objSh In ThisWorkbook.Worksheets
    For Each objCmnt In objSh.Comments
      With objCmnt.Shape
        .Width = 100
        .Height = 150
      End With
    Next
  Next
  
End Sub






« Gruß Sepp »



  

Betrifft: Funktional!! - Makro for each Zelle In ActiveSheet von: Andreas Müller
Geschrieben am: 17.08.2012 22:18:50

Hallo an beide,

danke für beide, schnelle und auch funktionale Lösungen. Da ich auch Kommentare im Querformat habe (ca. 150 Stück) wird es dafür wohl keine Lösung dafür geben, wie man diese wenige von ca. 1900 Kommentaren von dem Makro unberührt bzw. Height und Width einfach vertauscht. Naja, aber damit kann ich leben wenn das nicht geht ;-).

Gruß und noch einmal danke
Andreas


  

Betrifft: AW: Funktional!! - Makro for each Zelle In ActiveSheet von: Josef Ehrensberger
Geschrieben am: 17.08.2012 22:24:16


Hallo Andreas,

vielleicht so.

Sub sizeComment()
  Dim objSh As Worksheet, objCmnt As Comment
  
  For Each objSh In ThisWorkbook.Worksheets
    For Each objCmnt In objSh.Comments
      With objCmnt.Shape
        If .Width > .Height Then
          .Width = 150
          .Height = 100
        Else
          .Width = 100
          .Height = 150
        End If
      End With
    Next
  Next
  
End Sub



« Gruß Sepp »



  

Betrifft: AW: Funktional!! - Makro for each Zelle In ActiveSheet von: Andreas Müller
Geschrieben am: 18.08.2012 09:54:27

Hi,

danke, funktioniert! Was ich nicht ganz verstehe ist, wie er den Unterschied des Formates in den Kommentarfeldern findet?
If .Width > .Height Then

Auf deutsch, wenn Width größer (>) als Height, dann mach das ansonsten Else Schleife. Passt das so was ich meine?
Merci auf alle Fälle. Wenn ich als eure Lösungen anschaue, denke ich dass VBA dann doch nicht ganz soooo schwer sein kann. Man muss sich wahrscheinlich nur reinfuchsen in das Thema, eben wie bei allem.

Gruß Andreas


  

Betrifft: 2 x Richtig ... von: Matthias L
Geschrieben am: 18.08.2012 10:40:37

Hallo

Passt das so was ich meine?
Ja

Man muss sich wahrscheinlich nur reinfuchsen in das Thema, eben wie bei allem.
Ja


Gruß Matthias


  

Betrifft: Trotzdem gibt's bei Letzterem Richtungen und ... von: Luc:-?
Geschrieben am: 18.08.2012 18:11:34

…Levels, Andreas,
die ihre Zeit brauchen, um erreicht zu wdn! Um das zu erkennen, genügt ein Blick auf einschlägige WebSites. Diese sind entweder von Programmierern oder von Amateuren mit mehr oder weniger ordentlichen VBA-Kenntnissen. Während die Pgmierer idR das tun, was sie immer tun, nämlich alle Ressourcen (DLLs, spart Arbeit und grenzt für den Laien manchmal beinahe an Wunder) nutzen (für den der so etwas machen will, gibt's da schöne Sites), holpern die Amateure je nach Gusto durch einen Dschungel aus einfachsten udFktt, komplexeren Subroutinen und beinahe kryptischen Fkts-Deklarationen. Die Zwischenform, quasi eine Art excelformeln auf VBA-Basis, fehlt weitgehend oder ist, falls ansatzweise zu finden, meist recht primitiv.
Mit VBA ist das wie mit Englisch; man kann sich recht schnell verständl machen, aber bis zur großen Literatur ist der Weg sehr weit!
Gruß+schöheiWE (auch an Matti), Luc :-?