Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
908to912
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
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spalten mit VBA kopieren

Spalten mit VBA kopieren
23.09.2007 08:35:00
Herbert
Hallo!
Ich habe eine Tabelle mit mehreren Seiten wo überall Spalten Hellgrün hinterlegt sind.
Nun suche ich nach einer VBA Lösung, bei der entweder eine neue Tabelle oder eine neue Seite geöffnet wird.
Nun sollten alle Spalten die Hellgrün sind(aber nur wenn sie von Zeile 1-65536 vollständig markiert sind)
kopiert werden und in die neue Tabelle bzw. Seite eingefügt werden.
Ich hoffe Ich habe mich verständlich ausgedrückt. Leider bin ich VBA Anfänger!
mfg
Herbert

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten mit VBA kopieren
23.09.2007 08:42:00
Josef
Hallo Herbert,
"Ich habe eine Tabelle mit mehreren Seiten wo überall Spalten Hellgrün hinterlegt"
Meinst du vielleicht eine Mappe mit mehreren Tabellen?
Gruß Sepp

AW: Spalten mit VBA kopieren
23.09.2007 08:47:00
Herbert
Entschuldigung!
Natürlich Mappe und Tabellen.
mfg
Herbert

AW: Spalten mit VBA kopieren
23.09.2007 09:29:04
Josef
Hallo Herbert,
probier mal.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub test()
Dim rng As Range
Dim objWS As Worksheet, objWB As Workbook
Dim intC As Integer

On Error GoTo ErrExit
GMS

For Each objWS In ThisWorkbook.Worksheets
    
    For Each rng In objWS.Columns
        
        If rng.Interior.ColorIndex = 35 Then
            
            If objWB Is Nothing Then Set objWB = Workbooks.Add(xlWBATWorksheet)
            
            intC = intC + 1
            
            If intC > Columns.Count Then
                objWB.Worksheets.Add after:=objWB.Sheets(objWB.Sheets.Count)
                intC = 1
            End If
            
            rng.Copy objWB.Sheets(objWB.Sheets.Count).Columns(intC)
            
        End If
        
    Next
    
Next

ErrExit:
GMS True
Set objWS = Nothing
Set objWB = Nothing
Set rng = Nothing
End Sub

Sub GMS(Optional ByVal Modus As Boolean = False)
Static lngCalc As Long

With Application
    .ScreenUpdating = Modus
    .EnableEvents = Modus
    .DisplayAlerts = Modus
    .EnableCancelKey = IIf(Modus, 1, 0)
    If Modus Then
        .Calculation = lngCalc
    Else
        lngCalc = .Calculation
    End If
    .Cursor = IIf(Modus, -4143, 2)
    .CutCopyMode = False
End With

End Sub

Gruß Sepp

Anzeige
AW: Spalten mit VBA kopieren
23.09.2007 09:53:00
Herbert
Hallo!
Funktioniert wunderbar!
Und wieder einmal konnte mir dieses Forum weiterhelfen.
Gruss
Herbert

AW: Spalten mit VBA kopieren
24.09.2007 20:23:00
Herbert
Hallo!
Das Makro funktioniert toll, nur ist jetzt noch ein Problem aufgetaucht.
Da ich in jeder Tabelle in Spalte "A" wichtige Daten zu den grün gefärbten Spalten habe bräuchte ich, falls in der jeweiligen Tabelle Hellgrün hinterlegte Spalten exestieren auch die Spalte "A" vorangesetzt.
Bitte um einen Lösungsvorschlag da ich selbst wahrscheinlich auf keinen grünen Zweig komme.
Gruss
Herbert

AW: Spalten mit VBA kopieren
24.09.2007 20:38:00
Josef
Hallo Herbert,
das sollte es tun.
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub test()
Dim rng As Range
Dim objWS As Worksheet, objWB As Workbook
Dim intC As Integer
Dim blnFirstCol As Boolean

On Error GoTo ErrExit
GMS

For Each objWS In ThisWorkbook.Worksheets
    blnFirstCol = True
    For Each rng In objWS.Columns
        
        If rng.Interior.ColorIndex = 35 Then
            
            If objWB Is Nothing Then Set objWB = Workbooks.Add(xlWBATWorksheet)
            
            intC = intC + 1
            
            If intC > Columns.Count Then
                objWB.Worksheets.Add after:=objWB.Sheets(objWB.Sheets.Count)
                intC = 1
            End If
            
            If blnFirstCol Then
                rng.Parent.Columns(1).Copy objWB.Sheets(objWB.Sheets.Count).Columns(intC)
                intC = intC + 1
                blnFirstCol = False
            End If
            
            rng.Copy objWB.Sheets(objWB.Sheets.Count).Columns(intC)
            
        End If
        
    Next
    
Next

ErrExit:
GMS True
Set objWS = Nothing
Set objWB = Nothing
Set rng = Nothing
End Sub

Sub GMS(Optional ByVal Modus As Boolean = False)
Static lngCalc As Long

With Application
    .ScreenUpdating = Modus
    .EnableEvents = Modus
    .DisplayAlerts = Modus
    .EnableCancelKey = IIf(Modus, 1, 0)
    If Modus Then
        .Calculation = lngCalc
    Else
        lngCalc = .Calculation
    End If
    .Cursor = IIf(Modus, -4143, 2)
    .CutCopyMode = False
End With

End Sub

Gruß Sepp

Anzeige
AW: Spalten mit VBA kopieren
25.09.2007 13:30:29
Herbert
Hallo!
Habe das Makro heute erst eingebaut und läuft genau wie ich es wollte!
vielen Dank
Herbert

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige