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

Geöffnete Tabellenblätter einfügen

Geöffnete Tabellenblätter einfügen
Paulo
Hallo,
mein Problem: ich habe mehrere einzelne geöffnete Tabellenblätter, die ich in eine neu angelegte Arbeitsmappe verschieben oder kopieren möchte und zwar in alphabetischer/numerischer Reihenfolge. Danach sollte bei sämtlichen Tabellenblätter noch die Spaltenbreite angepaßt werden. Ist dies per Makro möglich?
Das Anpassen der Spalten sep. funktioniert zwar beim Markieren sämtlicher Blätter und Doppelklick auf die markierten Spalten, aber im aufgezeichneten Makro wird nur das aktive Blatt angepasst. Wer kann mir helfen?
Gruß Paulo
AW: Geöffnete Tabellenblätter einfügen
21.07.2010 19:01:36
Tino
Hallo,
hier mal eine Version so wie ich Deine Frage verstanden habe.
Es wird eine neue Datei erstellt und alle Tabellen, aus den gerate geöffneten Dateien kopiert.
Danach werden diese Sortiert.
kommt als Code in Modul1
Option Explicit 
  
Dim Regex As Object 
  
Sub Sheets_Copy_And_Sort() 
Dim meAr(), i As Integer, ii As Integer 
Dim oWB As Workbook, oWBOben As Workbook, oSh As Object 
 
'Schleife über alle Dateien 
For Each oWBOben In Workbooks 
    'Schleife über alle Tabellen in Datei 
    For Each oSh In oWBOben.Sheetsi 
        ii = ii + 1 
        Redim Preserve meAr(1 To 2, 1 To ii) 'Array dimensionieren 
         
        If oWB Is Nothing Then 'neue Datei ertsellen 
            oSh.Copy 'erste Tabelle kopieren 
            Set oWB = ActiveWorkbook 'diese Datei merken 
        Else 
            'neue Datei bereit erstellt, nur kopieren 
            oSh.Copy After:=oWB.Sheets(oWB.Sheets.Count) 
        End If 
        'die kopierte Tabelle 
        With oWB.Sheets(oWB.Sheets.Count) 
            'optimale Spaltenbreite 
            .UsedRange.EntireColumn.AutoFit 
            'Name der Tabelle 
            meAr(1, ii) = .Name 
            'Zahlen aus Tabelle 
            meAr(2, ii) = Ziffer(.Name) 'Ziffern aus Namen 
        End With 
    Next oSh 
 
Next oWBOben 
 
If ii > 0 Then 
    'Array drehen 
    meAr = Application.Transpose(meAr) 
    'Array nach Zahlen sortieren 
    QuickSort meAr, Lbound(meAr), Ubound(meAr), 2 
    'Tabellen sortieren 
    For i = Ubound(meAr) To Lbound(meAr) Step -1 
     oWB.Sheets(meAr(i, 1)).Move After:=oWB.Sheets(i) 
    Next i 
End If 
 
Set Regex = Nothing 
End Sub 
 
'Funktion für Ziffern aus Text 
Function Ziffer(ByVal strText$) As Long 
Dim objMatch As Object 
 
If Regex Is Nothing Then 
    Set Regex = CreateObject("Vbscript.Regexp") 
    With Regex 
        .Pattern = "\d+" 
        .Global = True 
    End With 
End If 
     
    Set objMatch = Regex.Execute(strText) 
     
    strText = "" 
     
    If objMatch.Count > 0 Then 
     For Each objMatch In objMatch 
        strText = strText & objMatch.Value 
     Next objMatch 
    End If 
     
    If IsNumeric(strText) Then 
     Ziffer = CLng(strText) 
    Else 
     Ziffer = 0 
    End If 
End Function 
kommt als Code in Modul2
Option Explicit 
  
Sub QuickSort(ByRef sArray, ByVal StartUnten As Long, ByVal EndeOben As Long, _
              ByVal LCol As Long, Optional ByVal Absteigend As Boolean = False) 
Dim iUnten As Long, iOben, iMitte, y 
Dim A As Long 
    iUnten = StartUnten 
    iOben = EndeOben 
    iMitte = sArray((StartUnten + EndeOben) / 2, LCol) 
    While (iUnten <= iOben) 
        If Not Absteigend Then 
            While (sArray(iUnten, LCol) < iMitte And iUnten < EndeOben) 
                iUnten = iUnten + 1 
            Wend 
            While (iMitte < sArray(iOben, LCol) And iOben > StartUnten) 
                iOben = iOben - 1 
            Wend 
        Else 
            While (sArray(iUnten, LCol) > iMitte And iUnten < EndeOben) 
                iUnten = iUnten + 1 
            Wend 
            While (iMitte > sArray(iOben, LCol) And iOben > StartUnten) 
                iOben = iOben - 1 
            Wend 
        End If 
        If (iUnten <= iOben) Then 
          For A = Lbound(sArray, 2) To Ubound(sArray, 2) 
            y = sArray(iUnten, A) 
            sArray(iUnten, A) = sArray(iOben, A) 
            sArray(iOben, A) = y 
          Next A 
            iUnten = iUnten + 1 
            iOben = iOben - 1 
              
        End If 
    Wend 
    If (StartUnten < iOben) Then Call QuickSort(sArray, StartUnten, iOben, LCol, Absteigend) 
    If (iUnten < EndeOben) Then Call QuickSort(sArray, iUnten, EndeOben, LCol, Absteigend) 
End Sub 
 
 
Gruß Tino
Anzeige
AW: Geöffnete Tabellenblätter einfügen
21.07.2010 20:32:00
Paulo
Hallo Tino,
bin wirklich kein Profi, aber nach der Markierung der Zeile "For Each oSh In oWBOben.Sheetsi" kommt bereits der Laufzeitfehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht; weiß also nicht weiter. Oder liegt dies vielleicht an meinem 2000er Excel?
Bedeutet "kommt als Code in Modul1" und "kommt als Code in Modul2", dass 2 separate Module erstellt werden müssen, bzw. das ganze über 2 Makro-Aufrufe durchzuführen ist?
Vorerst Danke für die Mühe.
Gruß Paul
AW: Geöffnete Tabellenblätter einfügen
21.07.2010 20:48:25
Ramses
Hallo
Lass einfach das "i" bei "Sheetsi" weg, das ist ein Schreibfehler
Ansonsten so wie Tino es gesagt hat. Das Makro macht schon das richtige, da musst du keine Sorgen haben
Gruss Rainer
Anzeige
AW: Geöffnete Tabellenblätter einfügen
21.07.2010 23:35:32
Paulo
Hallo Rainer,
auch Dir mein Dankeschön, das mich ermuntert hat, das Makro weiter durchzutesten nachdem der erste Versuch schon sehr früh scheiterte.
Gruß Paul
Schön, dass es noch Idealisten gibt.
AW: Geöffnete Tabellenblätter einfügen
21.07.2010 20:57:25
Tino
Hallo,
einfach zwei Module erstellen und die Codes dort rein kopiert,
der Name des Moduls ist nicht relevant.
Gestartet wird der Code über die Sub Sheets_Copy_And_Sort …
Wie Du den Code starten möchtest, weiß ich nicht (Button, Tastenkompiation)
Mach aus Sheetsi einfach Sheets,
bei mir in der Test- Datei ist es richtig, muss wohl ein Übersetzungsfehler in html sein.
Unter xl2000 kann ich nicht testen.
Gruß Tino
Anzeige
AW: Geöffnete Tabellenblätter einfügen
21.07.2010 23:30:55
Paulo
Hallo Tino,
nach einigen Versuchen und Ergänzungen (Anpassung von Schriftart und Größe, Ascii-Umlaute ändern etc. klappt das Makro einwandfrei. Hätte ich mir mit meinen geringen Kenntnissen kaum vorstellen können.
Ein kleiner Schönheitsfehler ist, dass beim Erstellen der neuen Datei zuerst eine Tabelle1 und eine Tabelle Makro4Excel eingefügt werden. Meine Personl.xls enthält diese 2 Tabellen. Kann man diese explizit ausschließen, dann wäre das Makro perfekt. Auf jeden Fall schon jetzt mein Super-Danke für die Hilfe. Es war mein erster Versuch, das Forum anzusprechen und ich muss sagen, es freut mich außerordentlich, dass Senioren, die nicht mehr ganz so uptodate sind, diese Unterstützung erhalten. Der Kandidat hat 100 Punkte.
Zur Info, das ganze hilft mir dabei, Dateien von einem alten DOS-Programm druckreif in Excel aufzubereiten, da das alte Programm keinen Ausdruck über USB ermöglicht. Das Programm selbst läuft aber einwandfrei in Windows 7 und ist durch Deine Hilfe jetzt auch ausdruckbar.
Gruß von einem glücklichen Paulo
P.S. Ich habe die beiden Module von Dir in meiner Personl.xls unter Modul 10 und 11 integriert, verstehe aber nicht ganz den Zusammenhang, weshalb der Ablauf des Makros von 10 auf 11 (Sortierung der Tabellen) übergeht. Ein Makro "QuickSort" wird ja nicht angezeigt. Für kurze Info zum Verständnis wäre ich dankbar.
Anzeige
AW: Geöffnete Tabellenblätter einfügen
22.07.2010 02:31:28
fcs
Hallo Paulo,
passe die Hauptprozedur wie folgt an um die Tabellen aus bestimmten Dateien nicht in die neue Arbeitsmappe zu kopieren. Die Prüfung der Tabellenanzahl ii auf größer 1 hab ich zusätzlich eingefügt, da es einen Fehler in QuickSort gibt, wenn im zu sortierenden Array nur 1 Element vorhanden ist.
"QuickSort" wird in der Liste der Makros nicht angezeigt, weil es ein Makro ist, dem beim Starten Parameter übergeben werden. Solche Makro können nicht direkt gestartet werden, sondern nur von anderen Prozeduren aufgerufen werden. In diesem Fall erfolgt der Aufruf der Sortierprozedur in folgender Zeile der Hauptprozedur und damit auch der Wechsel von Modul10 nach 11 und nach Abschluss der Sortierung wieder zurück nach 10.
      'Array nach Zahlen sortieren
QuickSort meAr, LBound(meAr), UBound(meAr), 2
"QuickSort" in einem eigenen Modul zu speichern hat programmiertechnische Gründe.
So kann man das komplette Modul in ein anderes VBA-Projekt per Drag and Drop kopieren, wenn man dort diese Sortierfunktion benötigt. Statt die Module in einem VBA-Projekt zu nummerieren sollte man Klartext-Namen verwenden. Es erleichtert die Orientierung. Statt "Modul10" z.B. "modTabCopy" oder statt "Modul11" z.B. "modQuickSort".
Gruß
Franz
Sub Sheets_Copy_And_Sort()
Dim meAr(), i As Integer, ii As Integer
Dim oWB As Workbook, oWBOben As Workbook, oSh As Object
'Schleife über alle Dateien
For Each oWBOben In Workbooks
'Name der Arbeitsmappe prüfen
Select Case LCase(oWBOben.Name)
Case "personl.xls", "personal.xlsb", LCase(ThisWorkbook.Name)
'do nothing - Blätter aus diesen Dateien nicht kopieren
'"personl.xls" = persönliche Makroarbeitsmappe Excel 2003 und älter
'"personal.xlsb" = persönliche Makroarbeitsmappe Excel 2007 und neuer
'LCase(ThisWorkbook.Name) = Arbeitsmappe in der dieses Makro gespeichert ist
Case Else
'Schleife über alle Tabellen in Datei
For Each oSh In oWBOben.Sheets
ii = ii + 1
ReDim Preserve meAr(1 To 2, 1 To ii) 'Array dimensionieren
If oWB Is Nothing Then 'neue Datei ertsellen
oSh.Copy 'erste Tabelle kopieren
Set oWB = ActiveWorkbook 'diese Datei merken
Else
'neue Datei bereit erstellt, nur kopieren
oSh.Copy After:=oWB.Sheets(oWB.Sheets.Count)
End If
'die kopierte Tabelle
With oWB.Sheets(oWB.Sheets.Count)
'optimale Spaltenbreite
.UsedRange.EntireColumn.AutoFit
'Name der Tabelle
meAr(1, ii) = .Name
'Zahlen aus Tabelle
meAr(2, ii) = Ziffer(.Name) 'Ziffern aus Namen
End With
Next oSh
End Select
Next oWBOben
If ii > 0 Then
'Array drehen
meAr = Application.Transpose(meAr)
If ii > 1 Then
'Array nach Zahlen sortieren
QuickSort meAr, LBound(meAr), UBound(meAr), 2
'Tabellen sortieren
For i = UBound(meAr) To LBound(meAr) Step -1
oWB.Sheets(meAr(i, 1)).Move After:=oWB.Sheets(i)
Next i
End If
End If
Set Regex = Nothing
End Sub

Anzeige
AW: Geöffnete Tabellenblätter einfügen
22.07.2010 07:06:00
Tino
Hallo,
Du hast zwar schon eine Antwort von fcs bekommen, hier noch mein Senf dazu.
Die Bemerkung wenn nur ein Tabellenblatt, habe ich auch mit umgesetzt.
( ich bin davon ausgegangen es sind immer mehrere,
für eins hätte ich speichern unter gewählt ohne VBA ;-) )
Option Explicit
 
Dim Regex As Object
 
Sub Sheets_Copy_And_Sort()
Dim meAr(), i As Integer, ii As Integer
Dim oWB As Workbook, oWBOben As Workbook, oSh As Object

'Schleife über alle Dateien 
For Each oWBOben In Workbooks
    'Personal.xls ausshließen 
    If Not LCase(oWBOben.Name) Like "personal.xls*" Then
        'Schleife über alle Tabellen in Datei 
        For Each oSh In oWBOben.Sheets
            ii = ii + 1
            Redim Preserve meAr(1 To 2, 1 To ii) 'Array dimensionieren 
            
            If oWB Is Nothing Then 'neue Datei ertsellen 
                oSh.Copy 'erste Tabelle kopieren 
                Set oWB = ActiveWorkbook 'diese Datei merken 
            Else
                'neue Datei bereits erstellt, nur kopieren 
                oSh.Copy After:=oWB.Sheets(oWB.Sheets.Count)
            End If
            'die kopierte Tabelle 
            With oWB.Sheets(oWB.Sheets.Count)
                'optimale Spaltenbreite 
                .UsedRange.EntireColumn.AutoFit
                'Name der Tabelle 
                meAr(1, ii) = .Name
                'Zahlen aus Tabelle 
                meAr(2, ii) = Ziffer(.Name) 'Ziffern aus Namen 
            End With
        Next oSh
    End If
Next oWBOben

If ii > 1 Then
    'Array drehen 
    meAr = Application.Transpose(meAr)
    'Array nach Zahlen sortieren 
    QuickSort meAr, Lbound(meAr), Ubound(meAr), 2
    'Tabellen sortieren 
    For i = Ubound(meAr) To Lbound(meAr) Step -1
     oWB.Sheets(meAr(i, 1)).Move After:=oWB.Sheets(i)
    Next i
End If

Set Regex = Nothing
End Sub

'Funktion für Ziffern aus Text 
Function Ziffer(ByVal strText$) As Long
Dim objMatch As Object

If Regex Is Nothing Then
    Set Regex = CreateObject("Vbscript.Regexp")
    With Regex
        .Pattern = "\d+"
        .Global = True
    End With
End If
    
    Set objMatch = Regex.Execute(strText)
    
    strText = ""
    
    If objMatch.Count > 0 Then
     For Each objMatch In objMatch
        strText = strText & objMatch.Value
     Next objMatch
    End If
    
    If IsNumeric(strText) Then
     Ziffer = CLng(strText)
    Else
     Ziffer = 0
    End If
End Function

Quicksort bleibt bestehen.
Diesmal hat es auch mit dem Sheetsi hingehauen.
Ich verteile meine Codes oft auf mehrere Module je nach Funktion entsprechend sortiert.
So kann ich besser im Hauptcode arbeiten wegen der Übersicht.
Natürlich könnte man alles in ein Modul quetschen,
aber mir fällt es so leichter den Überblick zu behalten.
In diesem Fall wäre es vielleicht nicht nötig, weil so viel Code ist es ja nicht.
Gruß Tino
Anzeige
AW: Persönliche Makroarbeitsmappe 2003 und älter
22.07.2010 08:08:32
fcs
Hallo Tino,
in älteren Excelversionen (2003 and oder) heißt die persönliche Makroarbeitsmappe in deutschen Excelversionen standardmäßig PERSONL.XLS - ein Relikt aus der Zeit, als Microsoft bei der Regionalisierung der Versionen noch andere Wege ging.
Hier muss man ggf. bei der Namensprüfung anpassen.
Über die Prüfung auf mehr als 1 Tabellenblatt bin ich ja auch nur gestolpert, weil ich beim Testen deiner eleganten Prozedur zufällig nur eine Arbeitsmappe mit einem Tabellenblatt geöffnet hatte.
Gruß
Franz
AW: Geöffnete Tabellenblätter einfügen
22.07.2010 11:58:04
Paulo
Hallo Tino, Hallo Franz
jetzt klappt es mit dem Makro perfekt. Ich habe lediglich personal.xls auf personl.xls (Excel 2000) angepasst. Der Versuch von Franz mit einer Datei war durchaus für mich sehr wichtig, denn ich habe wie bereits vorher angemerkt, das Makro um Formatierungen wie Schriftart und Größe, falsch dargestellte Umlaute erweitert. Insofern ist das Makro aus diesem Grund auch sinnvoll, selbst wenn nicht alle Funktionen benötigt werden.
Danke deshalb nochmals an Euch Beide.
Gruß Paulo
Anzeige
AW: Geöffnete Tabellenblätter einfügen
22.07.2010 13:13:11
Tino
Hallo,
demnach würde ich aus der Zeile
If Not LCase(oWBOben.Name) Like "personal.xls*" Then
diese machen
If InStr("personl.xls;personal.xlsb;", LCase(oWBOben.Name & ";")) = 0 Then
Ich arbeite zu wenig bzw. gar nicht mit dieser Makroarbeitsmappe.
Gruß Tino
AW: Geöffnete Tabellenblätter einfügen
22.07.2010 23:06:16
Paulo
Hallo Tino,
Danke für die Rückmeldung, die ich entsprechend in meinem Makro umgesetzt habe.
Nach folgenden Zeilen habe ich meine Formatierung, die auf alle Zeilen
und Tabellen angewendet werden soll, eingefügt. Wichtig ist dabei, dass erst danach die Spaltenbreite angepasst wird. Ob dies eine gute Lösung ist, weiß ich zwar nicht, aber sie funktioniert zumindest wie gewünscht:
Else
'neue Datei bereits erstellt, nur kopieren
oSh.Copy After:=oWB.Sheets(oWB.Sheets.Count)
End If
' EINGEFÜGTE FORMATIERUNG:"
Cells.Select
With Selection.Font ' erforderlich für tabellarische DIN A4-Seite
.Name = "Courier New"
.Size = 9
End With
Sheets.Select
Cells.EntireColumn.AutoFit
Selection.Replace What:="„", Replacement:="ä", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="”", Replacement:="ö", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="", Replacement:="ü", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Ž", Replacement:="Ä", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="™", Replacement:="Ö", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="š", Replacement:="Ü", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="á", Replacement:="ß", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False
Für Verbesserungsvorschläge bin ich selbstverständlich offen.
Danke und Gruß Paulo
Anzeige
ich würde es eventuell so machen...
23.07.2010 10:09:44
Tino
Hallo,
ich würde den Code für die Formatierung in einer separaten Prozedur laufen lassen.
kommt als Code in Modul1
Option Explicit 
  
Dim Regex As Object 
  
Sub Sheets_Copy_And_Sort() 
Dim meAr(), i As Integer, ii As Integer 
Dim oWB As Workbook, oWBOben As Workbook, oSh As Object 
 
'Schleife über alle Dateien 
For Each oWBOben In Workbooks 
    'Personal.xls ausshließen 
    If InStr("personl.xls;personal.xlsb;", LCase(oWBOben.Name & ";")) = 0 Then 
        'Schleife über alle Tabellen in Datei 
        For Each oSh In oWBOben.Sheets 
            ii = ii + 1 
            Redim Preserve meAr(1 To 2, 1 To ii) 'Array dimensionieren 
             
            If oWB Is Nothing Then 'neue Datei ertsellen 
                oSh.Copy 'erste Tabelle kopieren 
                Set oWB = ActiveWorkbook 'diese Datei merken 
            Else 
                'neue Datei bereits erstellt, nur kopieren 
                oSh.Copy After:=oWB.Sheets(oWB.Sheets.Count) 
            End If 
            'die kopierte Tabelle 
            With oWB.Sheets(oWB.Sheets.Count) 
                'Name der Tabelle 
                meAr(1, ii) = .Name 
                'Zahlen aus Tabelle 
                meAr(2, ii) = Ziffer(.Name) 'Ziffern aus Namen 
                'ist dies eine Tabelle und kein Diagramm? 
                If .Type = xlWorksheet Then 
                    'Prozedur Tabelle Formatieren aufrufen 
                    Call Formatiere_Tab(oWB.Sheets(oWB.Sheets.Count)) 
                End If 
            End With 
        Next oSh 
    End If 
Next oWBOben 
 
If ii > 1 Then 
    'Array drehen 
    meAr = Application.Transpose(meAr) 
    'Array nach Zahlen sortieren 
    QuickSort meAr, Lbound(meAr), Ubound(meAr), 2 
    'Tabellen sortieren 
    For i = Ubound(meAr) To Lbound(meAr) Step -1 
     oWB.Sheets(meAr(i, 1)).Move After:=oWB.Sheets(i) 
    Next i 
End If 
 
Set Regex = Nothing 
End Sub 
 
'Prozedur zum formatieren der Tabelle 
Sub Formatiere_Tab(oWS As Worksheet) 
 
With oWS.UsedRange 
    With .Font 
        .Name = "Courier New" 
        .Size = 9 
    End With 
     
    .Replace What:="„", Replacement:="ä", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False 
     
    .Replace What:="”", Replacement:="ö", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False 
     
    .Replace What:="", Replacement:="ü", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False 
     
    .Replace What:="Ž", Replacement:="Ä", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False 
     
    .Replace What:="™", Replacement:="Ö", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False 
     
    .Replace What:="š", Replacement:="Ü", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False 
     
    .Replace What:="á", Replacement:="ß", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False 
     
    .EntireColumn.AutoFit 
End With 
End Sub 
 
'Funktion für Ziffern aus Text 
Function Ziffer(ByVal strText$) As Long 
Dim objMatch As Object 
 
If Regex Is Nothing Then 
    Set Regex = CreateObject("Vbscript.Regexp") 
    With Regex 
        .Pattern = "\d+" 
        .Global = True 
    End With 
End If 
     
    Set objMatch = Regex.Execute(strText) 
     
    strText = "" 
     
    If objMatch.Count > 0 Then 
     For Each objMatch In objMatch 
        strText = strText & objMatch.Value 
     Next objMatch 
    End If 
     
    If IsNumeric(strText) Then 
     Ziffer = CLng(strText) 
    Else 
     Ziffer = 0 
    End If 
End Function 
Gruß Tino
Anzeige
AW: ich würde es eventuell so machen...
23.07.2010 15:32:52
Paulo
Hallo Tino,
habe den Code entsprechend übernommen. Dabei trat ein kleines Problem auf. Und zwar war jetzt die Zeilenhöhe 12,75 anstatt 12, sodass die Seitenhöhe überschritten wurde. Habe deshalb dann wie folgt ergänzt, danach passte es dann wieder:
With oWS.UsedRange
With .Font
.Name = "Courier New"
.Size = 9
End With
Cells.Select
Selection.RowHeight = 12

.Replace What:="„", Replacement:="ä", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False
Danke für die Unterstützung.
Gruß Paulo
versuche auf Select zu verzichten,
23.07.2010 15:42:17
Tino
Hallo,
mach einfach so.
.RowHeight = 12
Gruß Tino
AW: versuche auf Select zu verzichten,
23.07.2010 17:11:45
Paulo
Geht auch. Danke!
Gruß Paulo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige