Effacer valeur imposé cellule vide

Bonjour a tous,

J'ai créer une macro équivalente à la recherche avancé qui me permet de faire une recherche de fournisseur par année sur le nombre de RQ du fournisseur. Cependant, j'ai 3 critère pour faire ma recherche: Le nom du fournisseur, le nbr de RQ et le % de RQ de ce fournisseur pour l'année.

Ayant un tableau de 134 ligne x 3colonne en critère de recheche (exagéré, mais je veux avoir du choix ) Tout va bien lorsque je lance la macro de filtre pour le fournisseur seulement puisque toute les cellules vides sont remplis avec des 0 à l'étape avant. Ça ce complique lorsque je veux faire la recherche avec un nbr de RQ et un % de RQ ne sont pas pris en compte à cause du 0 à la colonne 1.

Comment faire pour qu'il n'y ait pas de 0 à la ligne correspondate à la cellule de la colonne 2 ou 3?

Merci Beaucoup

Ps: Je remplis toutes les cellules vides de la colonne 1 car sinon la recherche me sort tous les fournisseurs...ce qui n'est pas très pratique.

22suivi-nbr-rq-test.zip (530.35 Ko)

Bonsoir,

Pour supprimer les zéros,

tu vas dans Options Excel / Options avancées / décocher la case des cellules qui affichent un zéro dans une cellule de valeur nulle.

Pierot

En fait je cherche plus quelque chose du genre:

If MsgBox("Avez-vous remplis les cases vides?", vbYesNo, "Demande de confirmation") = vbNo Then

Dim c As Range

Dim currentRow, currentColumn As Integer

For Each c In Range("E3:fin_remplissage1")

currentRow = c.Cells.Row

currentColumn = c.Cells.Column

If c = "" And ActiveSheet.Cells(currentRow, currentColumn + 1) = "" And ActiveSheet.Cells(currentRow, currentColumn + 2) = "" Then

c = 1

End If

Next

MsgBox "Les cases vides ont été remplis!"

End If

End Sub

Cependant, je dois avoir un erreur quelque part mon code ne marche pas...

Bonjour scottisch1234,

Je te laisse essayer avec :

For Each c In Range("E3:" & fin_remplissage1)

MsgBox "Les cases vides ont été remplies !"

Cordialement

Le problème n'est pas que mon message ne s'affiche pas. Mais bien le fait que même si j'ai une valeur dans ma colonne 2 et 3, pour la même ligne un 1 va s'afficher pareil dans la première colonne ou il y a des valeur en colonne 2 et 3

Non, je crois qu'il y a méprise : j'ai mis la 2ème ligne avec MsgBox uniquement pour te montrer qu'il faut rajouter la lettre « e »

pour que le message affiché soit correct, du point de vue de l'orthographe. si tu relis ton message précédent, tu verras

cette ligne de code VBA : MsgBox "Les cases vides ont été remplis!" ; j'ai aussi ajouté un espace avant « ! » car ce sont

les anglo-saxons qui n'en mettent pas ➯ MsgBox "Les cases vides ont été remplies !"


Bien sûr, j'ai posté mon message surtout pour la 1ère ligne ; regarde bien les quelques différences entre ce que tu avais écrit :

For Each c In Range("E3:fin_remplissage1") et ce que j'ai proposé : For Each c In Range("E3:" & fin_remplissage1)

car il me semble que c'est de là que provient ton erreur : tu avais écrit :

Cependant, je dois avoir une erreur quelque part mon code ne marche pas...

Bonjour Dany,

En fait mon remplissage ce fait correctement et lorsque j'essais avec For Each c In Range("E3:" & fin_remplissage1) ça ne marche pas.

L'image 1 représente ce que je veux avoir avec le code plus bas et la case nommée "fin remplissage1" est la dernière ligne de la colonne fournisseur.[attachment=1]image1.JPG

L'image 2 représente ce que j'obtient lorsque je fais ma macro de remplissage, avec le code plus bas.

If MsgBox("Avez-vous remplis les cases vides?", vbYesNo, "Demande de confirmation") = vbNo Then

Dim c As Range

Dim currentRow, currentColumn As Integer

For Each c In Range("E3:fin_remplissage1")

currentRow = c.Cells.Row

currentColumn = c.Cells.Column

If c = "" And ActiveSheet.Cells(currentRow, currentColumn + 1) = "" And ActiveSheet.Cells(currentRow, currentColumn + 2) = "" Then

c = 1

End If

Next

MsgBox "Les cases vides ont été remplis!"

End If

End Sub

Désolé si c'est compliqué/m'exprime mal je suis débutant autodidacte en toute forme de programmation

image1 image 2

Bonjour scottish1234,

Tu a écrit :

la case nommée "fin remplissage1"

Tu dois donc utiliser : Range("fin remplissage1")

Avant, tu avais mis un caractère souligné dans le nom,

alors si c'est un oubli ou une faute de frappe, tu dois

utiliser à la place : Range("fin_remplissage1")

NB : le terme exact pour une case est cellule :

c'est la terminologie officielle.

Je te laisse faire des essais ; si ça ne marche toujours pas,

tu peux joindre un fichier sans données confidentielles.

Cordialement

Bonjour (..]

@dhany

dhany a écrit :

au du point de vue de l'orthographe

sa ces daim poing de vu la grand-mère

@NCC 1701 : merci pour ton indication ; dont acte : faute corrigée sur mon article du 31 octobre à 22:38 (2ème ligne).

Rechercher des sujets similaires à "effacer valeur impose vide"