Boucle FOR et un IF

Bonjour,

j'ai un excel de la forme :

Colonne A Colonne B

valeur1 45

valeur2 3

valeur3 0

valeur4 9,5

valeur5 0

valeur6 12

J'aimerais créer un programme VBA qui parcours la Colonne B (uniquement des int ou double), et pour chaque valeurs strictement supérieures à 0, il copie la ligne de cette valeur vers un tableau préalablement définit. Donc si j'execute le programme sur mon excel ci dessus je dois obtenir :

valeur1 45

valeur2 3

valeur4 9,5

valeur6 12

(Ou alors on réfléchit de la manière inverse, pour chaque valeurs de la colonne B égale à zéro il supprime la ligne et dans ce cas la on est pas obligé de créer un tableau )

J'ai des bonnes bases en code mais je débute seulement sur VBA.

Faites attention à vous en ces temps difficiles!

Bonne journée

Bonjour et

Poste un fichier, ce sera plus simple pour répondre

La solution la plus simple et de programmer un filtre avancé ... donc ni FOR ni IF

(Ou alors on réfléchit de la manière inverse, pour chaque valeurs de la colonne B égale à zéro il supprime la ligne et dans ce cas la on est pas obligé de créer un tableau )

Cette solution est simple en effet, il faut juste parcourir le fichier de bas en haut (STEP -1) car une fois la ligne supprimée le code risque de perdre les pédales !

Bonjour,

Voila le fichier excel, qui en soit est très simple. Et je voudrais créer un programme qui supprime les lignes ou la valeur 0 apparaît , l'utilisation de VBA me paraît bien car je pensais utiliser un bouton(je lui affecterai donc une macro). En effet dans un premier temps je veux avoir accès à mon excel initiale puis une fois que j'appuis sur le bouton les lignes avec 0 se suppriment

bonne journée

7test.xlsx (8.50 Ko)
Sub supp()
For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
    If Range("B" & i) = 0 Then Rows(i).Delete Shift:=xlUp
Next
End Sub
3test.xlsm (12.55 Ko)

Bonjour,

Bonjour à tous

Un exemple

8test-37.xlsm (20.23 Ko)

Merci beaucoup pour votre rapidité, c'est exactement ce qu'il me fallait !

Bonne journée à tous

Bonjour,

Bonjour Steelson

une variante... (juste pour le fun)

Sub Macro3()
With Columns(2)
    .Replace What:="0", Replacement:="", LookAt:=xlWhole
    .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub

Intéressant ... il n'existe pas l'équivalent "0" de xlCellTypeBlanks ?

re-,

Non, 0 est considéré comme une constante.

En cliquant sur F5, puis "Cellules", tu as la liste des types de cellules que tu peux sélectionner (et ensuite, l'enregistreur fait le reste....)

Rechercher des sujets similaires à "boucle"