Collage special en VBA ne fonctionne pas

Bonjour.

Je suis sur office 2019 et je rencontre des problème avec une macro.

Quand j'utilise le sode suivant : Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False ,
tous fonctionne bien mais dés que j'integre dans le code des conditions le code s'arrête au collage.

Ci dessous le code en entier :

Sub ChoixOffres()
'
' ChoixOffres Macro

'
If Range("G14") = 1 Then
Sheets("Offres").Select
Range("Offre1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("BL").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("G14").Select

Else

If Range("G14") = 2 Then
Sheets("Offres").Select
Range("Offre2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("BL").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("G14").Select

Else

If Range("G14") = 3 Then
Sheets("Offres").Select
Range("Offre3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("BL").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("G14").Select

Else

If Range("G14") = 4 Then
Sheets("Offres").Select
Range("Offre3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("BL").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("G14").Select

End If

End If

End If

End If

End Sub

Edit modo : code à mettre entre balises avec le bouton </> merci d'y faire attention la prochaine fois

Quelequ'un peut-il me dire pourquoi ça ne fonctionne pas avec les conditions.

Merci.

Bonjour,

Vous ferez attention de mettre votre code entre balises SVP

image

Un PasteSpecial ne se fait pas directement sur une feuille, mais à partir d'une cellule

With Sheets("BL").Range("A1")
  .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With

De plus inutile de faire des ".Select" pour travailler sur les objets feuille

A+

Bonjour Aliouette et bonjour Bruno.

Il en va de même pour toutes les conditions ( elles sont inutiles )

Votre nom de plage est la concaténation de "offre" et de la valeur de G14.

' Sélection de la bonne offre : 
Choix=Range("G14") .value
Sheets("Offres").Range("Offre" & Choix).Select

Bonjour.

Merci BrunoM45. Cela marche en ajoutant la référence de la cellule de destination, mais ça ne marche pas avec l'expression "Sheets("BL").Range("E17").Select"

Merci encore une fois.

Merci aussi à Xmenpl pour l'astuce.

Rechercher des sujets similaires à "collage special vba fonctionne pas"