Conditions "SI" dans du VBA (pour copier coller des données)

  • Initiateur de la discussion Initiateur de la discussion julien712
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

julien712

XLDnaute Junior
Bonjour

Je n'ai encore pas d'expérience en matière de création de code VBA sur Excel
La seule chose que je fais est de créer des macros en mode graphique et non en les écrivant ...

Je souhaite créer une condition dans une macro déjà existante.

la macro déjà existante consiste à copier coller des valeurs d'un tableau A vers un tableau B.

Voici le code :

Code:
Sheets("Racc Suite Valid").Select
    Range("A2:B3500").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Worksheets("Liste clients raccordés").Activate
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    last_ligne = Worksheets("Liste clients raccordés").Range("A1").End(xlDown).Row
    
    Sheets("Racc Suite Valid").Select
    Range("F2:G3500").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Worksheets("Liste clients raccordés").Activate
    Range("A" & CStr(last_ligne) + 1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    last_ligne = Worksheets("Liste clients raccordés").Range("A1").End(xlDown).Row
    
    Sheets("Racc Suite Valid").Select
    Range("K2:L3500").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Worksheets("Liste clients raccordés").Activate
    Range("A" & CStr(last_ligne) + 1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

(le code est OK je n'ai pas besoin de le modifier en soit)

Par contre ce que je souhaite c'est rajouté une condition pour chaque réitération (j'entends par là, une condition juste aprés "last_ligne = Worksheets("Liste clients raccordés").Range("A1").End(xlDown).Row")

En français voila ce que cela donne : si ma cellule A2 de ma feuille "Racc Suite Valid" est vide, alors je ne copie pas, sinon je copie (code du script VBA)

Pouvez vous m'indiquer le code à mettre et à quel emplacement ?

Merci

Cdlt
 
Re : Conditions "SI" dans du VBA (pour copier coller des données)

Salut julien712 et le forum
N'ayant qu'un court extrait du code, difficile de faire mieux :
Code:
Sheets("Racc Suite Valid").Select
If Range("A2").End(xlUp).Row > 2 Then
    Range("A2:B" & Range("A2").End(xlDown).Row).Copy
    Worksheets("Liste clients raccordés").Range("A2").PasteSpecial Paste:=xlPasteValues
    
    last_ligne = Worksheets("Liste clients raccordés").Range("A1").End(xlDown).Row
    Range("F2:G" & Range("F2").End(xlDown).Row).Copy
    Worksheets("Liste clients raccordés").Range("A" & (last_ligne) + 1).PasteSpecial Paste:=xlPasteValues
       
    last_ligne = Worksheets("Liste clients raccordés").Range("A1").End(xlDown).Row
    Range("K2:L" & Range("K2").End(xlDown)).Copy
    Worksheets("Liste clients raccordés").Range("A" & (last_ligne) + 1).PasteSpecial Paste:=xlPasteValues
End If
Code non testé
Les selct/selection ne servent qu'à ralentir le code.
Je n'utilise jamais End(xlDown), la réponse dépendant de l'état (vide ou non) de la référence et de la cellule suivante. Comme, en général, les deux dernières lignes d'une feuille sont vides, cells(Rows.count,"A").end(xlUp) donne toujours la même réponse : dernière ligne non-vide en A

Pas sûr de ma réponse, les données étant... limitées.
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
547
Réponses
2
Affichages
283
Réponses
18
Affichages
316
Réponses
17
Affichages
1 K
Retour