Toevoeging aan VBA

Status
Niet open voor verdere reacties.

erwin87

Gebruiker
Lid geworden
11 feb 2011
Berichten
52
Beste,

ik heb onderstaande VBA bekomen met hulp van...
Graag zou ik hebben dat Blad2 niet actief word tijdens het kopieren van de Data.
ook zou ik graag hebben dat aan het einde van de Copy in sheet "Control Report Overview" range Z2:AB19 uitgewist is.
zou het ook mogelijk om opmaak mee te kopieren maar geen formules. als het niet kan is niet erg.

Alvast bedankt.



Sub PasteSelectionToNextFreeColumn()
Dim c As Long
If ActiveSheet.Name <> "Control Report Overview" Then Exit Sub
Range("Z2:AB19").Select
Selection.Copy
With ThisWorkbook.Sheets("Blad2")
.Activate
c = LastCol(.Range(.Cells(1, 1).Value).EntireRow)
If c = 0 Then
.Range(.Cells(1, 1).Value).Select
Else
.Range(.Cells(1, 1).Value).EntireRow.Cells(1, c + 1).Select
End If
Selection.PasteSpecial Paste:=xlPasteValues

End With
Application.CutCopyMode = False
End Sub

Function LastCol(ByVal myRow As Range) As Long
With myRow
If WorksheetFunction.CountA(.Cells) > 0 Then
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
End If
End With
End Function
 
Code graag tussen codetags voor de leesbaarheid.
Geen Activate en select gebruiken dan blijf je op hetzelfde blad.
Code:
Sub VenA()
  With Sheets("Blad2")
    lc = .Cells(1, Columns.Count).End(xlToLeft).Column
    Sheets("Control Report Overview").Range("Z2:AB19").Copy IIf(lc = 1, .Cells(1), Cells(1, lc + 1))
    .UsedRange.Copy
    .Cells(1).PasteSpecial xlPasteValues
    Sheets("Control Report Overview").Range("Z2:AB19").Clear
  End With
End Sub
 
Hoi,

alvast bedankt voor je reactie.
ik heb even het bestandje erbij gedaan Bekijk bijlage Clean Desk CPEMEA.xlsm. ik kom er niet aan uit ben een leek in VBA.
als je in Control Report Overview op Data wegschrijven klikt doet hij wat hij moet doen.
maar enkel naar blad 2 springen zou niet moeten en het zou fijn zijn moet hij de ingevoerde data in Control Report Overview E4:F18 zou wissen.
 
Als even de juiste range en rij aanpassen al te moeilijk is kan je het beter zonder VBA doen. Met de hele opzet kan je volgens mij niet veel en het mee kopiëren van de voorwaardelijke opmaak gaat het bestand er na verloop van tijd ook niet sneller op maken. Maar dat is mijn mening en niet jouw vraag:d

Probeer het zo maar eens
Code:
Sub VenA()
  With Sheets("Blad2")
    lc = .Cells([COLOR="#FF0000"]3[/COLOR], Columns.Count).End(xlToLeft).Column
    Sheets("Control Report Overview").[COLOR="#FF0000"]Range("E2:G18")[/COLOR].Copy IIf(lc = 1, .Cells([COLOR="#FF0000"]3[/COLOR], 1), Cells([COLOR="#FF0000"]3[/COLOR], lc + 1))
    .UsedRange.Copy
    .Cells(1).PasteSpecial xlPasteValues
    Sheets("Control Report Overview").[COLOR="#FF0000"]Range("E4:F18")[/COLOR].Clear[COLOR="#FF0000"]Contents[/COLOR]
  End With
End Sub
 
Verwijder alle kolommen rechts van V (daar zitten samengevoegde cellen).
Code:
Sub hsv()
Application.ScreenUpdating = False
With Sheets("Control Report Overview")
 .Range("E2:G18").Copy
     With Sheets("Blad2").Cells(3, Columns.Count).End(xlToLeft).Offset(, 1)
       .PasteSpecial xlPasteAll
       .PasteSpecial xlPasteValues
       .PasteSpecial xlPasteColumnWidths
      End With
 .Range("E4:F18").ClearContents
End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan