Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1072to1076
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

@ Tino: Help zu einem Makro von Dir!

@ Tino: Help zu einem Makro von Dir!
11.05.2009 12:13:56
Dir!
Hallo Tino,
ich brauche zu diesem von Dir erstellten Makro Deine Hifle!
https://www.herber.de/forum/archiv/1036to1040/t1039245.htm#1039245
In diesem Beitrag das Makro ganz unten (mit der Übersicht):
Da werden nicht alle Tabellenblätter ausgelesen und links aufgelistet. Kannst Du da bitte mal schauen.
Vielen Dank!
LG
Claudia

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
bei mir nicht?
11.05.2009 12:49:24
Tino
Hallo,
bei meinen Tests werden zwar keine Tabellen ausgelassen,
aber versuche es mal mit dieser Version.
Sonst müsstest Du mal ein Beispiel hochladen wo dies der Fall ist.
Sub FormelnUndFunktionenDokumentieren()
Dim i As Integer
Dim zelle As Range
Dim s As String
Dim l As Long
Dim NeuSeet As Worksheet
Dim mySH As Worksheet

Set NeuSeet = Sheets.Add(Before:=Worksheets(1))

l = 1
NeuSeet.Cells(l, 1).Value = "Tabelle"
NeuSeet.Cells(l, 2).Value = "Zelle"
NeuSeet.Cells(l, 3).Value = "Formel/Funktion"
NeuSeet.Cells(l, 4).Value = "Inhalt"
NeuSeet.Range(NeuSeet.Cells(l, 1), NeuSeet.Cells(l, 4)).Font.Bold = True
l = l + 1

For Each mySH In ThisWorkbook.Worksheets
On Error Resume Next
     With mySH
            For Each zelle In .Cells.SpecialCells(xlCellTypeFormulas)
             If zelle.FormulaLocal = "" Then GoTo Fehler:
              NeuSeet.Cells(l, 1).Value = .Name
              NeuSeet.Cells(l, 2).Value = zelle.Address
              NeuSeet.Cells(l, 3).Value = "'" & zelle.FormulaLocal
              NeuSeet.Cells(l, 4).Value = zelle.Value
              l = l + 1
Fehler:     Next zelle

     End With
Next mySH

Columns("A:D").AutoFit
End Sub


Gruß Tino

Anzeige
Schutz?
11.05.2009 13:31:43
Claudia
Hallo Tino,
könnte das am Schutz liegen?
ja so ist es.
11.05.2009 13:45:53
Tino
Hallo,
habe den Code etwas umgebaut, Passwort musst Du noch entsprechend anpassen.
Option Explicit


Sub FormelnUndFunktionenDokumentieren()
Dim zelle As Range
Dim s As String
Dim L As Long
Dim NeuSeet As Worksheet
Dim mySH As Worksheet

Set NeuSeet = Sheets.Add(Before:=Worksheets(1))

With NeuSeet
     L = 1
    .Cells(L, 1).Value = "Tabelle"
    .Cells(L, 2).Value = "Zelle"
    .Cells(L, 3).Value = "Formel/Funktion"
    .Cells(L, 4).Value = "Inhalt"
    .Range("A1:D1").Font.Bold = True
     L = L + 1
    
    On Error Resume Next
    
    For Each mySH In ThisWorkbook.Worksheets
       If mySH.ProtectContents Then
         mySH.Protect "Passwort", , , , True 'Passwort angeben 
       End If
                For Each zelle In mySH.Cells.SpecialCells(xlCellTypeFormulas)
                 If zelle.FormulaLocal = "" Then GoTo KeineFormel: 'keine Formel in dieser Tabelle 
                  
                  .Cells(L, 1).Value = mySH.Name
                  .Cells(L, 2).Value = zelle.Address
                  .Cells(L, 3).Value = "'" & zelle.FormulaLocal
                  .Cells(L, 4).Value = zelle.Value
                   L = L + 1
    
KeineFormel:    Next zelle
    
    Next mySH
    
    .Columns("A:D").AutoFit
End With 'NeuSeet 

End Sub

'hier muss die Tabelle aktiv sein 
Sub ZurückSchreiben()
Dim Bereich As Range
Dim myArea
Dim L As Long

With ActiveSheet
 Set Bereich = .Range("A2:C" & .Cells(.Rows.Count, 1).End(xlUp).Row)
End With

myArea = Bereich

For L = 1 To Ubound(myArea, 1)
    
    If myArea(L, 1) <> "" Then
        If Sheets(CStr(myArea(L, 1))).ProtectContents Then
         Sheets(CStr(myArea(L, 1))).Protect "Passwort", , , , True 'Passwort angeben 
        End If
    End If
    
    If myArea(L, 1) <> "" And myArea(L, 2) <> "" And myArea(L, 3) <> "" Then
     Sheets(CStr(myArea(L, 1))).Range(CStr(myArea(L, 2))).FormulaLocal = myArea(L, 3)
    ElseIf myArea(L, 1) <> "" And myArea(L, 2) <> "" Then
     Sheets(CStr(myArea(L, 1))).Range(CStr(myArea(L, 2))).Value = ""
    End If

Next L

End Sub


Gruß Tino

Anzeige
Danke schön!
11.05.2009 17:28:59
Claudia

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige