XL 2013 VBA copier si condition

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
 

vgendron

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 226
Messages
2 086 414
Membres
103 204
dernier inscrit
alaa20dine01