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
 
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
236
Réponses
2
Affichages
201
Réponses
8
Affichages
466
Réponses
2
Affichages
124
Réponses
8
Affichages
233
Réponses
10
Affichages
281
Réponses
5
Affichages
232
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
7
Affichages
249
Retour