Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1276to1280
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kommentare über mehrere Spalten auslesen

Kommentare über mehrere Spalten auslesen
Constantin
Hallo,
ich würde gerne das nachstehende Programm (von Sepp erhalten; mit Alternative von Karin) ausbauen wollen:
Statt dem Auslesen der Kommentare von nur der Spalte der aktiven Zelle (in eine neue, daneben einzufügende Spalte), soll dies für alle Spalten gemacht werden, die in Zeile 1 (A1, B1, ...) eine Überschrift haben, beginnend von Spalte 3 (C1) an. Da die jeweils neu eingefügte Spalte noch keine Überschrift zugewiesen bekommen hat, soll hier die Überschrift von der jeweils ausgelesenen Spalte mit dem Präfix "NEU_" übernommen werden. Werden in einer Spalte keine Kommentare gefunden, soll zwecks gleichem Layout, gleich verfahren werden (neue Spalte daneben plus Überschrift).
Was ich mir dann noch vorstellen würde, wäre, mit einem separaten Makro alle diese Spalten, deren Überschrift mit "NEU_" beginnt, ausblenden zu können (auch die, die mangels Kommentarfeld leergeblieben sind). Beim Einblenden dieser "NEU_"-Spalten sollten hingegen nur die gezeigt werden, in die ein Kommentar übertragen wurde (die also nicht leer sind, abgesehen von der Überschrift).
Für einen Tipp oder eine Hilfe bei dem ersten oder zweiten Makro würde ich mich sehr freuen.
Grüße, Constantin
Bisheriges Programm: Auslesen der Kommentare der aktiven Spalte in eine neue Spalte:
Sub readComments()
Dim rngC As Range, rng As Range
On Error Resume Next
Set rngC = ActiveCell.EntireColumn.SpecialCells(xlCellTypeComments)
On Error GoTo 0
If Not rngC Is Nothing Then
Columns(ActiveCell.Column + 1).Insert
For Each rng In rngC.Cells
rng.Offset(0, 1) = rng.Comment.Text
Next
End If
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Kommentare über mehrere Spalten auslesen
16.09.2012 13:27:09
Josef

Hallo Constantin,
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub readComments()
  Dim rng As Range, rngC As Range
  Dim lngIndex As Long, lngCalc As Long
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    lngCalc = .Calculation
    .Calculation = -4135
    .DisplayAlerts = False
  End With
  
  lngIndex = 3
  
  With ActiveSheet
    Do While .Cells(1, lngIndex) <> ""
      Set rngC = Nothing
      .Columns(lngIndex + 1).Insert
      .Cells(1, lngIndex + 1) = "NEU_" & .Cells(1, lngIndex)
      On Error Resume Next
      Set rngC = .Columns(lngIndex).SpecialCells(xlCellTypeComments)
      On Error GoTo 0
      If Not rngC Is Nothing Then
        For Each rng In rngC.Cells
          rng.Offset(0, 1) = rng.Comment.Text
        Next
      End If
      lngIndex = lngIndex + 2
    Loop
  End With
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "'readComments'" & vbLf & String(60, "_") & _
        vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
        "Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
        .Description & vbLf, vbExclamation + vbMsgBoxSetForeground, _
        "VBA - Fehler in Prozedur - readComments"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = lngCalc
    .DisplayAlerts = True
    .StatusBar = False
  End With
  
  Set rng = Nothing
  Set rngC = Nothing
End Sub


Sub hide_NEU()
  Dim rngHide As Range
  Dim lngCol As Long
  
  For lngCol = 4 To Application.Max(4, Cells(1, Columns.Count).End(xlToLeft).Column)
    If Cells(1, lngCol) Like "NEU_*" Then
      If rngHide Is Nothing Then
        Set rngHide = Columns(lngCol)
      Else
        Set rngHide = Union(rngHide, Columns(lngCol))
      End If
    End If
  Next
  
  If Not rngHide Is Nothing Then rngHide.EntireColumn.Hidden = True
End Sub


Sub show_NEU()
  Dim rngHide As Range
  Dim lngCol As Long
  
  For lngCol = 4 To Application.Max(4, Cells(1, Columns.Count).End(xlToLeft).Column)
    If Cells(1, lngCol) Like "NEU_*" Then
      If Application.CountA(Columns(lngCol)) > 1 Then
        If rngHide Is Nothing Then
          Set rngHide = Columns(lngCol)
        Else
          Set rngHide = Union(rngHide, Columns(lngCol))
        End If
      End If
    End If
  Next
  
  If Not rngHide Is Nothing Then rngHide.EntireColumn.Hidden = False
End Sub



« Gruß Sepp »

Anzeige
AW: Kommentare über mehrere Spalten auslesen
16.09.2012 13:47:03
Constantin
mir fehlen die Worte - vielen vielen Dank!
Grüße, Constantin

342 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige