Mon ''if'' ne fonctionne pas

Bonjour,

J'ai un fichier, je veux faire un copier/coller avec condition.

Je veux faire si B15=1 copie dans une feuille,Si B15=2 copie dans une autre feuille

Mon problème c'est que peut importe la valeur qui a dans B15, exemple 0, il copie tout de même dans les deux feuilles. Je suis nouveau dans VB et je ne comprend pas comment faire respecter le If...

Voici mon code :

Sub Macro1()

    'If "B15" = ("1") Then
    Range("B2:H51").Select
    Selection.Copy
    Sheets("Client1").Select
    ActiveWindow.SmallScroll Down:=-12
    Columns("B:B").Select
    Selection.Insert Shift:=xlToRight
    'End if
    'If "B15" = "2" Then
    Range("B2:H51").Select
    Selection.Copy
    Sheets("Client2").Select
    ActiveWindow.SmallScroll Down:=-12
    Columns("B:B").Select
    Selection.Insert Shift:=xlToRight
    'End if

Pouvez vous m'aider... je suis certain que la solution est très simple !

Merci !

Bonjour

pourquoi quand tu fais ta copie, tu utilises Range("B2:H51") et pourquoi quand tu fais ton test tu n'utilises pas range

If Range("B15") = 1 then
end if
if range("B15") = 2 then
end if

maintenant, B15 te donne le n° de feuille de transfert des valeurs, pas besoin du If

Sheets("Client" & range("B15")).select

je ne vois pas ton paste, donc je ne sais pas ou tu copies ta plage, mais la copie peut se faire une une seule ligne

Range("B2:H51").copy destination:=Sheets("Client" & range("B15")).Range("xxxxxx")

je ne vois pas ce que vient faire l'insertion d'une colonne mais tu as sans doute tes raisons, en attendant plus de précision ou encore un exemple de ton classeur avec le résultat escompté

Bonjour

Il doit y avoir plus simple!!

Sub Macro1()

If [B15] = 1 Then
Range("B2:H51").Copy
Sheets("Client1").Columns("B:B").Insert Shift:=xlToRight
Application.CutCopyMode = False
End If
If [B15] = 2 Then
Range("B2:H51").Copy
Sheets("Client2").Columns("B:B").Insert Shift:=xlToRight
Application.CutCopyMode = False
End If
End Sub

bonjour Cb60

merci pour cette précision

on peut donc raccourcir sans probleme

sub macro1()
       Range("B2:H51").copy
       Sheets("Client" & range("B15")).range("B:B").insert shift:=xltoright
       application.cutcopymode = false
end sub

Merci je viens de comprendre ton code, mais petite question à quoi sert le cut copy mode = false?

Merci encore de votre aide

re:

quand tu fais un copy dans excel, la plage à copier est entourée d'une série de pointillés clignotants

après un coller, le copier est toujours actif, ça sert à le désactiver

Rechercher des sujets similaires à "mon fonctionne pas"