XL 2013 Fonction vba copie coller

lestoiles1

XLDnaute Occasionnel
Bonjour à tous,

Je ne sais pas qu-est-ce qui cloche avec le code vba copie coller pourtant j'ai fait record macro et ça bug au niveau de range("A8:A108")

Merci

Lestoiles1

Private Sub CommandButton1_Click()
Sheets("Resume").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
ActiveWindow.SmallScroll Down:=-18
Range("A8:A108").Select
Selection.Copy
Sheets("ALL2").Select
Range("A28037").Select
ActiveSheet.Paste
Sheets("Resume").Select
Range("R8:S108").Select
Range("S108").Activate
Application.CutCopyMode = False
Selection.Copy
Sheets("ALL2").Select
Range("B28037").Select
ActiveSheet.Paste
Range("D28037").Select
Application.CutCopyMode = False
Range("E28036").Select
Selection.Copy
Range("E28037").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("D28037").Select
ActiveCell.FormulaR1C1 = "1/24/2022"
Range("F28036").Select
Selection.Copy
Range("F28037").Select
ActiveSheet.Paste
Range("D28037:F28037").Select
Application.CutCopyMode = False
Selection.Copy
End Sub
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    80.9 KB · Affichages: 34

job75

XLDnaute Barbatruc
Bonjour lestoiles1, le forum,

Puisque c'est la macro d'un CommandButton elle est forcément dans la feuille du bouton.

Et quand on ne précise pas la feuille d'un Range c'est cette feuille qui est la feuille par défaut.

D'où le bug si une autre feuille est sélectionnée.

De toute façon vous êtes sur ce forum depuis plus de 2 ans, vous avez dû apprendre que les Select ou autres Activate sont en général inutiles voire nuisibles donc utilisez :
VB:
Private Sub CommandButton1_Click()
Dim F1 As Worksheet, F2 As Worksheet
Set F1 = Sheets("Resume")
Set F2 = Sheets("ALL2")
F1.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
F1.Range("A8:A108").Copy F2.Range("A28037")
F1.Range("R8:S108").Copy F2.Range("B28037")
F2.Range("E28037") = F2.Range("D28037").Formula
F2.Range("D28037") = CDate("24/1/2022")
F2.Range("F28036").Copy F2.Range("F28037")
End Sub
Et depuis le temps vous devriez aussi savoir que quand on présente un code on utilise les balises de code comme ci-dessus.

A+
 

Discussions similaires

Réponses
3
Affichages
544