Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 VBA copier si condition

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 !

Florian53

XLDnaute Impliqué
Bonjour,

Je voudrais réaliser une macro qui me copie une valeur dans une cellule ou dans une autre en fonction de sa valeur:

J'ai commencé à faire ce code mais celui ci ne fonctionne pas, avez vous une piste ?

Code:
Sub test()
'Déclaration d'une variable entière pour stocker le nombre de ligne de ton tableau
Dim NombreLigne As Integer
'Sélection de la feuille sur laquelle se trouve les données à traiter
Sheets("Feuil2").Select
'Enregistrement du nombre de ligne de ton tableau
NombreLigne = Range("B2", [B2].End(xlDown)).Select
'Boucle qui va de 1 au nombre total de ligne
For i = 1 To NombreLigne
    'Si la cellule de la ligne i et de la seconde colonne (B) est inférieur à 2 fois " B2", alors
    If Cells(i, 2) <= B2 * 2 Then
        'La valeur de la cellule de la ligne i et de la colonne 1 (B) est recopié sur la même ligne i en colonne 3 (C)
        Cells(i, 5).Value = Cells(i, 2).Value
    'Fin de la condition If
    End If
    'Si la cellule de la ligne i et de la seconde colonne (B) est supérieur ou égale à 2 fois " B2", alors
    If Cells(i, 2) >= B2 * 2 Then
        'La valeur de la cellule de la ligne i et de la colonne 1 (B) est recopié sur la même ligne i en colonne 6 (F)
        Cells(i, 6).Value = Cells(i, 2).Value
    'Fin de la condition If
    End If
'Fin de la boucle For
Next
End Sub
 
Bonjour

Sans fichier exemple, difficile de se faire une idée..
mais déjà je pense que ca coince ici
NombreLigne = Range("B2", [B2].End(xlDown)).Select

il faudrait plutot
NombreLigne = Range("B" & Rows.Count).End(xlUp).Row
 
Essaie ce code:

NombreLigne est devenu DERNIERELIGNE --> plus cohérent avec le code
et ton test 2* B2---> VBA comprend B2 comme une variable... vide..
toi tu veux le contenu de la cellule B2
--> Range("B2").value
ou comme tu l'as écrit ailleurs: Cells(2,2).value

VB:
Sub test()
'Déclaration d'une variable entière pour stocker le nombre de ligne de ton tableau
Dim NombreLigne As Integer
'Sélection de la feuille sur laquelle se trouve les données à traiter
Sheets("Feuil2").Select
'Enregistrement du nombre de ligne de ton tableau
DERNIERELIGNE= Range("B" & Rows.Count).End(xlUp).Row
'Boucle qui va de 1 au nombre total de ligne
For i = 2 To DERNIERELIGNE 'pour commencer à la seconde ligne
    'Si la cellule de la ligne i et de la seconde colonne (B) est inférieur à 2 fois " B2", alors
    If Cells(i, 2) <= 2*range("B2").valueThen
        'La valeur de la cellule de la ligne i et de la colonne 1 (B) est recopié sur la même ligne i en colonne 3 (C)
        Cells(i, 5).Value = Cells(i, 2).Value
    'Fin de la condition If
    End If
    'Si la cellule de la ligne i et de la seconde colonne (B) est supérieur ou égale à 2 fois " B2", alors
    If Cells(i, 2) >= 2*range("B2").value Then
        'La valeur de la cellule de la ligne i et de la colonne 1 (B) est recopié sur la même ligne i en colonne 6 (F)
        Cells(i, 6).Value = Cells(i, 2).Value
    'Fin de la condition If
    End If
'Fin de la boucle For
Next
End Sub
 
- 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
5
Affichages
257
Réponses
2
Affichages
209
Réponses
8
Affichages
476
Réponses
2
Affichages
124
Réponses
8
Affichages
235
Réponses
10
Affichages
287
Réponses
5
Affichages
237
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
503
Réponses
7
Affichages
253
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…