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

Kopieren ohne Zellfarbe

Kopieren ohne Zellfarbe
29.12.2020 12:53:13
Ulrich
Hallo,
ich habe eine kleine Frage:
Mit folgendem Code kopiere ich eine Zeile und füge sie unterhalb ein.
Der Rahmen soll mit übergeben werden, aber Inhalt und Zellfarbe nicht.
Mit "clear" wird ja nun alles gelöscht, mit "clearContens" nur der Wert
Gibt es eine andere Möglichkeit?
Danke für die Hilfe.
Gruß Ulli
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 And Target.Row > 6 And Target.Row 

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren ohne Zellfarbe
29.12.2020 13:01:01
Werner
Hallo,
dann nimm halt die Zellfarbe auch noch raus.
Call .Range("B1:L1").Offset(1, 0).Interior.Color = xlNone
Gruß Werner
AW: Kopieren ohne Zellfarbe
29.12.2020 13:08:48
Ulrich
Hallo Werner,
das hatte ich schon im Vorfeld versucht und diese Zeile ergänzt.
Dann kommt der Fehler:
Fehler beim Kompilieren: Erwartet: Anweisungsende:
Die Zeile wird rot hinterlegt
Gruß Ulli
AW: Kopieren ohne Zellfarbe
29.12.2020 13:10:56
Nepumuk
Hallo Ulli,
das ist eine Eigenschaft die du ändern willst. Also ohne Call.
Gruß
Nepumuk
AW: Kopieren ohne Zellfarbe
29.12.2020 13:15:02
Ulrich
Hallo Nepumuk,
herzlichen Dank!! klappt!
Gruß Ulli
AW: Kopieren ohne Zellfarbe
29.12.2020 13:05:00
Nepumuk
Hallo Ulli,
um 2 Zeilen wirst du nicht herum kommen:
1. .ClearContents
2. .Interior.Pattern = xlPatternNone
Gruß
Nepumuk
Anzeige
AW: Kopieren ohne Zellfarbe
29.12.2020 13:12:56
Ulrich
Hallo Nepumuk,
dann kommt dieser Fehler:
Gruß Ulli
Userbild
AW: Kopieren ohne Zellfarbe
29.12.2020 13:14:57
Nepumuk
Hallo Ulli,
ohne Call. Methoden werden mit Call aufgerufen, Eigenschaften ohne.
Gruß
Nepumuk
AW: Kopieren ohne Zellfarbe
29.12.2020 14:42:06
Ulrich
Hallo Nepumuk,
ich habe noch eine kurze Frage.
Du hattest mir den folgenden Code angepasst. (Übertrag in To Do Liste)
Der funktioniert einwandfrei, nur wird beim Einlesen der Daten der Zeilenumbruch in der Zelle rausgenommen.
Lässt sich das ändern?
Gruß Ulli
Option Explicit
Public Sub To_Do_Uebertragen()
Dim i As Long, j As Long, lngLastRow As Long
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
With Worksheets("Übertrag to do")
.Unprotect
j = 6
Call .Range(.Cells(6, 1), .Cells(.Rows.Count, 6)).Clear
With Worksheets("Gefährdungsbeurteilung")
lngLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
For i = 7 To lngLastRow
If Not Worksheets("Gefährdungsbeurteilung").Rows(i).Hidden Then
If Not Worksheets("Gefährdungsbeurteilung").Cells(i, 10).Value = "" Then
.Cells(j, 2).Value = Worksheets("Gefährdungsbeurteilung").Cells(i, 1).Value
.Cells(j, 3).Value = Worksheets("Gefährdungsbeurteilung").Cells(i, 7).Value
.Cells(j, 4).Value = Worksheets("Gefährdungsbeurteilung").Cells(i, 9).Value
.Cells(j, 5).Value = Worksheets("Gefährdungsbeurteilung").Cells(i, 10). _
Value
.Cells(j, 6).FormulaLocal = "=WENN(Gefährdungsbeurteilung!K" & i & _
"="""";"""";WENN(Gefährdungsbeurteilung!L" & i & "="""";"""";""P""))"
j = j + 1
End If
End If
Next i
lngLastRow = .Cells(.Rows.Count, 2).End(xlUp).Row
If lngLastRow > 6 Then
With .Range(.Cells(6, 1), .Cells(lngLastRow, 6))
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
With .Font
.Name = "Arial"
.Size = 10
.Bold = False
.ColorIndex = 0
End With
End With
.Range(.Cells(6, 3), .Cells(lngLastRow, 3)).HorizontalAlignment = xlLeft
.Range(.Cells(6, 2), .Cells(lngLastRow, 2)).Font.Bold = True
.Range(.Cells(6, 2), .Cells(lngLastRow, 2)).NumberFormat = "0"".""#0"".""0"
With .Range(.Cells(6, 1), .Cells(lngLastRow, 6))
Call .BorderAround(LineStyle:=xlContinuous)
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
.Borders(xlInsideVertical).LineStyle = xlContinuous
End With
With .Range(.Cells(6, 6), .Cells(lngLastRow, 6)).Font
.Name = "Wingdings 2"
.Size = 16
.Bold = True
.Color = -16711936
End With
'Fortlaufende Nummer
.Cells(6, 1).Value = 1
Call .Range(.Cells(6, 1), .Cells(lngLastRow, 1)).DataSeries( _
Rowcol:=xlColumns, Type:=xlDataSeriesLinear, Step:=1)
End If
.Protect
End With
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

Anzeige
AW: Kopieren ohne Zellfarbe
29.12.2020 15:06:20
Nepumuk
Hallo Ulli,
dann musst du mit Copy&Paste arbeiten um das Format mitzunehmen.
Gruß
Nepumuk
AW: Kopieren ohne Zellfarbe
29.12.2020 15:17:26
Ulrich
Hall Nepumuk,
könnte man nicht nach dem Einfügen der Daten den Zeilenumbruch anweisen?
Der Makro-Rekorder würde es so machen, ich weiß nicht ob es besser gehen könnte:
Range("A6:F193").Select
With Selection
.WrapText = True
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub
Gruß Ulli
AW: Kopieren ohne Zellfarbe
29.12.2020 15:19:47
Nepumuk
Hallo Ulli,
in welche Spalte soll der Zeilenumbruch rein?
Gruß
Nepumuk
Anzeige
AW: Kopieren ohne Zellfarbe
29.12.2020 15:22:27
Ulrich
Hallo Nepumuk,
in Spalte C und E ab Zeile 6
Gruß Ulli
AW: Kopieren ohne Zellfarbe
29.12.2020 15:26:42
Nepumuk
Hallo Ulli,
dann so:
Option Explicit

Public Sub To_Do_Uebertragen()
    
    Dim i As Long, j As Long, lngLastRow As Long
    
    With Application
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
    End With
    
    With Worksheets("Übertrag to do")
        
        .Unprotect
        
        j = 6
        
        Call .Range(.Cells(6, 1), .Cells(.Rows.Count, 6)).Clear
        
        With Worksheets("G-Muster")
            lngLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        End With
        
        For i = 7 To lngLastRow
            
            If Not Worksheets("G-Muster").Rows(i).Hidden Then
                
                If Not Worksheets("G-Muster").Cells(i, 10).Value = "" Then
                    
                    .Cells(j, 2).Value = Worksheets("G-Muster ").Cells(i, 1).Value
                    .Cells(j, 3).Value = Worksheets("G-Muster ").Cells(i, 7).Value
                    .Cells(j, 4).Value = Worksheets("G-Muster ").Cells(i, 9).Value
                    .Cells(j, 5).Value = Worksheets("G-Muster ").Cells(i, 10).Value
                    .Cells(j, 6).FormulaLocal = "=WENN(G-Muster!K" & i & _
                        "="""";"""";WENN(G-Muster!L" & i & "="""";"""";""P""))"
                    
                    j = j + 1
                    
                End If
            End If
        Next i
        
        lngLastRow = .Cells(.Rows.Count, 2).End(xlUp).Row
        
        If lngLastRow > 6 Then
            
            With .Range(.Cells(6, 1), .Cells(lngLastRow, 6))
                
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
                
                With .Font
                    
                    .Name = "Arial"
                    .Size = 10
                    .Bold = False
                    .ColorIndex = 0
                    
                End With
            End With
            
            With .Range(.Cells(6, 3), .Cells(lngLastRow, 3))
                .HorizontalAlignment = xlLeft
                .WordWrap = True
            End With
            
            .Range(.Cells(6, 5), .Cells(lngLastRow, 5)).WordWrap = True
            
            With .Range(.Cells(6, 2), .Cells(lngLastRow, 2))
                
                .Font.Bold = True
                .NumberFormat = "0"".""#0"".""0"
                
            End With
            
            With .Range(.Cells(6, 1), .Cells(lngLastRow, 6))
                
                Call .BorderAround(LineStyle:=xlContinuous)
                .Borders(xlInsideHorizontal).LineStyle = xlContinuous
                .Borders(xlInsideVertical).LineStyle = xlContinuous
                
            End With
            
            With .Range(.Cells(6, 6), .Cells(lngLastRow, 6)).Font
                
                .Name = "Wingdings 2"
                .Size = 16
                .Bold = True
                .Color = -16711936
                
            End With
            
            .Cells(6, 1).Value = 1
            
            Call .Range(.Cells(6, 1), .Cells(lngLastRow, 1)).DataSeries( _
                Rowcol:=xlColumns, Type:=xlDataSeriesLinear, Step:=1)
            
        End If
        
        .Protect
        
    End With
    
    With Application
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = True
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Kopieren ohne Zellfarbe
29.12.2020 15:44:45
Ulrich
Hallo Nepumuk,
der Code schein noch eine ältere Variante zu sein, da sind die Rahmen und die Fortlaufende Nummer noch nicht integriert.
Könntest du die Anweisung eventuell hier ergänzen, das ist der letzte Stand.
Gruß Ulli
Option Explicit
Public Sub To_Do_Uebertragen()
Dim i As Long, j As Long, lngLastRow As Long
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
With Worksheets("Übertrag to do")
.Unprotect
j = 6
Call .Range(.Cells(6, 1), .Cells(.Rows.Count, 6)).Clear
With Worksheets("Gefährdungsbeurteilung")
lngLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
For i = 7 To lngLastRow
If Not Worksheets("Gefährdungsbeurteilung").Rows(i).Hidden Then
If Not Worksheets("Gefährdungsbeurteilung").Cells(i, 10).Value = "" Then
.Cells(j, 2).Value = Worksheets("Gefährdungsbeurteilung").Cells(i, 1).Value
.Cells(j, 3).Value = Worksheets("Gefährdungsbeurteilung").Cells(i, 7).Value
.Cells(j, 4).Value = Worksheets("Gefährdungsbeurteilung").Cells(i, 9).Value
.Cells(j, 5).Value = Worksheets("Gefährdungsbeurteilung").Cells(i, 10). _
Value
.Cells(j, 6).FormulaLocal = "=WENN(Gefährdungsbeurteilung!K" & i & _
"="""";"""";WENN(Gefährdungsbeurteilung!L" & i & "="""";"""";""P""))"
j = j + 1
End If
End If
Next i
lngLastRow = .Cells(.Rows.Count, 2).End(xlUp).Row
If lngLastRow > 6 Then
With .Range(.Cells(6, 1), .Cells(lngLastRow, 6))
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
With .Font
.Name = "Arial"
.Size = 10
.Bold = False
.ColorIndex = 0
End With
End With
.Range(.Cells(6, 3), .Cells(lngLastRow, 3)).HorizontalAlignment = xlLeft
.Range(.Cells(6, 2), .Cells(lngLastRow, 2)).Font.Bold = True
.Range(.Cells(6, 2), .Cells(lngLastRow, 2)).NumberFormat = "0"".""#0"".""0"
With .Range(.Cells(6, 1), .Cells(lngLastRow, 6))
Call .BorderAround(LineStyle:=xlContinuous)
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
.Borders(xlInsideVertical).LineStyle = xlContinuous
End With
With .Range(.Cells(6, 6), .Cells(lngLastRow, 6)).Font
.Name = "Wingdings 2"
.Size = 16
.Bold = True
.Color = -16711936
End With
'Fortlaufende Nummer
.Cells(6, 1).Value = 1
Call .Range(.Cells(6, 1), .Cells(lngLastRow, 1)).DataSeries( _
Rowcol:=xlColumns, Type:=xlDataSeriesLinear, Step:=1)
End If
.Protect
End With
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

Anzeige
AW: Kopieren ohne Zellfarbe
29.12.2020 15:49:29
Nepumuk
Hallo Ulli,
das ist bei mir der letzte Stand. Der Code ist von gestern da habe ich dir die Zellformatierung:
.NumberFormat = "0"".""#0"".""0"
eingebaut.
Gruß
Nepumuk
AW: Kopieren ohne Zellfarbe
29.12.2020 15:58:34
Ulrich
Hallo Nepumuk,
ja das ist Richtig.
Aber die Zellformatierung war schon nicht in dem letzten Stand den du mir gesendet hattest.
(Stand ohne Rahmen und fortlaufende Nummer)
War ein Stand davor, ich hatte sie dann in den letzten Stand eingefügt.
Dieser Code ist der letzte Stand (nur das Arbeitsblatt aus dem ausgelesen wird heisst anders, jetzt "Gefährdungsbeurteilung".)
Gruß Ulli
AW: Kopieren ohne Zellfarbe
29.12.2020 16:06:47
Nepumuk
Hallo Ulli,
die Rahmen:
With .Range(.Cells(6, 1), .Cells(lngLastRow, 6))
    
    Call .BorderAround(LineStyle:=xlContinuous)
    .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    .Borders(xlInsideVertical).LineStyle = xlContinuous
    
End With

und die Nummerierung:
.Cells(6, 1).Value = 1

Call .Range(.Cells(6, 1), .Cells(lngLastRow, 1)).DataSeries( _
    Rowcol:=xlColumns, Type:=xlDataSeriesLinear, Step:=1)

sind doch drin.
Gruß
Nepumuk
Anzeige
AW: Kopieren ohne Zellfarbe
29.12.2020 16:35:26
Ulrich
Hallo Nepumuk,
ich bekomme den Code nicht ans Laufen.
Keine Rahmen, keine fortlaufende Nummer, und keinen Zeilenumbruch.
Und folgende Fehlermeldung.
Der andere Code läuft einwandfrei, außer den Zeilenumbruch.
Userbild
AW: Kopieren ohne Zellfarbe
29.12.2020 16:41:21
Nepumuk
Hallo Ulli,
warum kopierst du nicht einfach meinen Code und tauschst die Tabellennamen aus? Dazu den falschen Tabellennamen markieren Strg+h drücken den richtigen Tabellennamen in das untere Feld eintragen / einfügen und auf "Alle ersetzen" klicken.
In meinem Code steht:
            With .Range(.Cells(6, 3), .Cells(lngLastRow, 3))
.HorizontalAlignment = xlLeft
.WordWrap = True
End With
Warum änderst du das wenn du es nicht verstehst?
Gruß
Nepumuk
Anzeige
AW: Kopieren ohne Zellfarbe
29.12.2020 16:48:39
Ulrich
Hallo Nepumuk,
ja, habe ich versucht.
Dann kommt folgender Fehler und .wordWrap = True wird gelb hinterlegt.
Gruß Ulli
Userbild
AW: Kopieren ohne Zellfarbe
29.12.2020 16:53:57
Nepumuk
Hallo Ulli,
entschuldige, mein Fehler. Ich habe die falsche Eigenschaft benutzt. Ändere das so:
.WrapText = True
Gruß
Nepumuk
AW: Kopieren ohne Zellfarbe
29.12.2020 17:05:20
Ulrich
Hallo Nepumuk,
alles Top!
Danke.
Gruß Ulli
AW: Kopieren ohne Zellfarbe
29.12.2020 13:30:45
onur
Dein Code kopiert zwar die ganze Zeile und fügt sie drunter ein, aber mit
Call .Range("B1:L1").Offset(1, 0).ClearContents'WOZU CALL?

wird immer nur der Inhalt von B2:L2 gelöscht. Warum?
Anzeige
AW: Kopieren ohne Zellfarbe
29.12.2020 13:58:32
Ulrich
In spalte a ist eine Formel, die darf nicht gelöscht werden.
Klappt jetzt soweit.
In der Zeile die Kopiert wird könnte in Spalte c oder d ein Bild sein.
Dieses wird beim kopieren auch mit übertragen.
Kann man das auch unterbinden(löschen)?
Gruß Ulli

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige