Hallo Erich,
Excel-Jeanie dient dazu, etwas aus Excel in einem Forum so darzustellen, wie ich es zu Hause in Excel sehe. Man sieht also die Zellen mit Formatierung etc., ganz unten stehen dann jeweils die Formeln. Normalerweise müsste das bereits in der Vorschau-Ansicht der Fall sein, war es aber nicht, weswegen ich verunsichert bin.
Es geht auch anders, mit dem Makro von dem ich gesprochen hab, aber dann müsste ich wissen, was ich wo reinkopieren muss bzw. wie ich das mache. Der Code ist jedenfalls:
Sub A_www_Tabelle()
'Programm zum formatierten Einfügen von kleinen Beispieltabellen in wer-weiss-was
'Es werden auch benutzte Formeln und Namen aufgelistet
'Februar2005 Reinhard, mit Korrekturen Franz von Mai 2005
'Im VBA-EDitor muss über Extras—Verweise der Verweis auf MS Forms2.0 Object Library
'gesetzt sein, sonst Fehlermeldung bei Dim kurz as DataObject
'Anwendung der Sub ist einfach, in Tabelle gewünschten Bereich markieren,
'Makro ausführen, dann in wer-weiss-was mit Strg+V einfügen
'In den Remarks ist mit positionieren oder/und formatieren das Einfügen von Leerzeichen gemeint
Dim anzS As Integer, s As Integer, anzZ As Long, z As Long
Dim ZeilenSatz() As String, Breite() As Integer, Mastersatz As String, A1Name As String
Dim vor As Integer, hinter As Integer
Dim Formeln As String, Bezeichnungen As String
Dim anz As Integer, n As Integer, Länge As Integer
Dim kurz As DataObject
With Selection
anzS = .Columns.Count 'Anzahl Spalten im markierten Tabellenbereich
anzZ = .Rows.Count 'Anzahl der Zeilen
ReDim Breite(anzS) 'jede Spalte hat eine Breite
ReDim ZeilenSatz(anzZ) 'aus der Zeile plus Füll-Leerzeichen wird ein Zeilensatz
For s = 1 To anzS 'Schleife um pro Spalte die jeweilig höchste Breite zu ermitteln
Breite(s) = 0
For z = 1 To anzZ
If Len(.Cells(z, s).Value) > Breite(s) Then
Breite(s) = Len(.Cells(z, s).Value)
End If
Next z
Next s
For z = 1 To anzZ 'die zeilennummer in jedem Zeilensatz wird generiert und formatiert
ZeilenSatz(z) = Right(" " & .Cells(z, 1).Row, Len(.Cells(anzZ, 1).Row)) & " "
Next z
'MasterSatz wird mit Blattnamen gefüllt
Mastersatz = "Tabellenblattname: " & ActiveSheet.Name & vbLf & vbLf
'Mastersatz wird positioniert um A B C usw aufzunehmen
Mastersatz = Mastersatz & " " & String(Len(.Cells(anzZ, 1).Row), " ")
For s = 1 To anzS 'In MasterSatz werden die Spaltenbezeichnungen aufgrund ihrer Spaltenbreite eingefügt
A1Name = SName(.Cells(1, s).Column)
If Breite(s) „“ Then 'wenn es Formeln gibt
Formeln = vbLf & vbLf & „Benutzte Formeln:“ & vbLf & Left(Formeln, Len(Formeln) - 1)
End If
'Formeln werden in Masteratz gelesen
Mastersatz = "
" & Left(Mastersatz, Len(Mastersatz) - 1) & Formeln & vbLf
'======== Fehlehafte Zeile ======
' anz = ThisWorkbook.Names.Count 'Anzahl der im Workbook benutzten Namen ermitteln
'======== nachfolgend Korrektur FCS Mai 2005======
anz = ActiveWorkbook.Names.Count 'Anzahl der im Workbook benutzten Namen ermitteln
If anz \>= 1 Then 'Wenn es Namen gibt
Bezeichnungen = vbLf & vbLf & "Namen in der Tabelle:" & vbLf
Länge = Len(ActiveWorkbook.Names.Item(1).Name)
For n = 1 To anz
If Länge "
End With
'Mastersatz wird in Zwischenablage geschrieben
Set kurz = New DataObject
kurz.SetText Mastersatz
kurz.PutInClipboard
Set kurz = Nothing
End Sub
Function SName(ByVal sp As Integer) As String
'Ermittlung der Spaltenbezeichnung A...IV aus der Spaltennummer 1...256
If sp [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]