Problème de syntaxe

Bonjour le forum,

Je travaille sur le code suivant pour copier coller des cellules d'une colonne A vers la colonne C en fonction des valeurs qui existent dans la colonne B.

L'objectif est d'avoir dans la colonne C les cellules qui remplissent la condition suivante :

Si la cellule de la colonne B contient la valeur "Faux" ou la valeur "0", je fais une copie de la cellule qui existe dans la colonne A (même ligne), et je la colle dans la colonne C sans faire des sauts lignes.

Pour cela j'ai créé deux variables i et j, l'un pour chercher les cellules de la colonne B qui remplissent cette condition, et j pour faire coller les cellules trouvées dans la colonne C sans faire des sauts de lignes.

Mais lorsque j'ai essaie d'exécuter le code cela ne donne pas de résultat et je ne sais pas si il s'agit d'un problème de syntaxe ou autre chose.

Je suis vraiment bloqué et je cherche depuis plusieurs jours la solution... je ne trouve pas...

ci dessous le code avec un fichier en jointure de ce message j'espère qu'il servira à quelque chose.

Sub test()
Dim j As Long, i As Long, NbLignes As Long
For j = NbLignes To 3 Step -1

  For i = NbLignes To 2 Step -1

  If Cells(i, "B") = "Faux" Or Cells(i, "B") = "0" Then

     Cells(i, "A").Select

     Selection.Copy

     Cells(j, "C").Select
     ActiveSheet.Paste

  End If

  Next i

  Next j

End Sub
15test01.xlsx (10.10 Ko)

Bonjour

A tester

Sub test()
Dim J As Long, NbLignes As Long

  NbLignes = Range("A" & Rows.Count).End(xlUp).Row
  Range("C2:C" & NbLignes).ClearContents
  For J = 2 To NbLignes
    If Range("B" & J) = False Or Range("B" & J) = 0 Then
      Range("A" & J).Copy Range("C" & Rows.Count).End(xlUp).Offset(1, 0)
    End If
  Next J
End Sub

Bonjour,

@ réponse supprimée

Bonjour à tous;

Merci Banzai64 pour ta réponse, la solution maaarche...

STP peux tu m'expliquer cette partie du code et si on peut ajouter sur cette partie Copier - coller les valeurs :

Range("C" & Rows.Count).End(xlUp).Offset(1, 0)

Encore merci.

Bonjour

Range("C" & Rows.Count).End(xlUp).Offset(1, 0)

Se place dans la 1ère colonne vide de la colonne C

Josef a écrit :

si on peut ajouter sur cette partie Copier - coller les valeurs

Il faut modifier le code

Sub test()
Dim J As Long, NbLignes As Long

  Application.ScreenUpdating = False
  NbLignes = Range("A" & Rows.Count).End(xlUp).Row
  Range("C2:C" & NbLignes).ClearContents
  For J = 2 To NbLignes
    If Range("B" & J) = False Or Range("B" & J) = 0 Then
      Range("A" & J).Copy
      Range("C" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    End If
  Next J
  Application.CutCopyMode = False
End Sub

Merci Banzai64 pour ton aide.

Cordialement

Rechercher des sujets similaires à "probleme syntaxe"