Recherche code pour remplacer des valeurs par vba sous condition [Résolu/Fermé]

Signaler
Messages postés
22
Date d'inscription
mercredi 29 mai 2013
Statut
Membre
Dernière intervention
15 décembre 2013
-
 JinRo -
Bonjour,

Je suis à la recherche d'un code VBA qui me permettrait de remplir des cellules vide avec une même valeur pour autant qu'une cellule de la colonne A par exemple soit renseignée.
J'ai pensé à ce code que j'utilise pour vider des cellules en essayant de faire
Dim c As Range

If c.Value in Range("a1:A")<>"" then For Each c In Range("H1:V1000")
If c.Value = "" Then c.Replace.Value = "A Expédier"
Next
End if
End Sub

Mais ça ne marche pas. Par ailleurs je débute en vba. Par conséquent si quelqu'un pouvait m'aider ça serait bien volontier.

13 réponses

Messages postés
15271
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 août 2020
1 326
Bonjour,

Dans l'aide VBA excel cherchez range.find methode, vous avez un exemple de code, adaptez le.

Bonne suite
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57907 internautes nous ont dit merci ce mois-ci

Messages postés
22
Date d'inscription
mercredi 29 mai 2013
Statut
Membre
Dernière intervention
15 décembre 2013

Merci, j'ai essayé de reprendre le code excemple qui est donné.

Sub A_remplir()
With Worksheets(3).Range("D2:D1000")
Set c = .Find("En cours", LookIn:=xlValues)
If Not c Is Nothing Then
FirstAdress = c.Adress
For Each c In Range("H2:V1000")
If .c.Value = "" Then c.Value = "A remplir"
Next
End If
End With
End Sub

Mais mtnt quand je lance la macro... ben Rien ne se passe où me suis-je planté?
Messages postés
15271
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 août 2020
1 326
Re,

Vous etes sur de ce que vous voulez, pourquoi faire une recherche plusieurs fois D2:D1000, puisque a la premiere cellule trouvee il n'y aura plus de cellule vide en H1:V1000, meme si actuelle ca ne marche pas, question de fonctionnement!!!
Bonjour,
Navré pour ma réponse tardive mais j'ai énormément de travail en ce moment.
Pour répondre à votre question non, ce n'est pas ce que je voulais.

Ce que je veux c'est qu'en fonction de la valeur en colonne D, les cellules en H:V si elles sont vides prennent une valeur spécifique.

Malhereusement n'étant que débutant en VBA et en autodidacte ce n'est pas évident pour moi de faire juste ou de faire logique... Si vous pouvez m'aider ça serait avec un grand plaisir que je prendrais note et en apprendrai un peu plus.

Par ailleurs, j'aimerai également comprendre comment une textbox vide peut renvoyer une valeur dans une cellule alors qu'elle est considérée comme "" dans le code vba?
Messages postés
15271
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 août 2020
1 326
Bonjour,

Navré pour ma réponse tardive l'essentiel est repondre, le laps de temps est sans importance.

Ce que je veux c'est qu'en fonction de la valeur en colonne D et cette valeur peut etre n'importe ou dans la colonne (en fonction d'une plage de cellules), cette valeur est fixe ou variable. la valeur a ecrire dans les cellules vide (H1:V1000) sera fixe ou en fonction de la valeur colonne D ???

A+
Rebonjour et merci pour votre compréhension.

Pour répondre à votre question je vais vous donné un exemple qui sera probablement plus parlant.
Si en D2, j'ai la valeur "En cours", j'aimerai que sur la rangée H2:V2 pour chaque cellule vide une valeur X vienne s'insérer. En revanche, si j'ai une valeur "Terminé", je souhaiterai que chaque cellule vide de la range comporte une valeur Y.

Je ne sais pas si je suis très clair... dans mon explication. N'hésiter pas à me le faire savoir.
Messages postés
15271
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 août 2020
1 326
Bonjour,

un petit exemple de code:

https://www.cjoint.com/c/CGgjSsf0rIr

A+
Bonjour,

Merci pour votre code je l'ai testé et il fonctionne super bien. Encore merci.
Petite question j'ai essayé de le modifié pourqu'il ne fonctionne que ligne par ligne. Soit si en D3 la valeur est "En cours" H3:V3 se mettent à jour en fonction de D3.

J'arrive à modifié le code pour qu'il s'execute en fonction de toute la colonne D mais je n'arrive pas à le modifier pour qu'il ne modifie les valeurs que par ligne en fonction de la cellule D adjacente.

Encore merci pour le fichier car il m'a appris encore d'autre petits trucs qui me seront bien utiles. J'aimerai pouvoir me former efficacement, si vous avez des conseils je suis preneur.
Messages postés
15271
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 août 2020
1 326
Bonjour,

recapitulation de ce que je comprends de votre demande:

mettre a jour par ligne du tableau H1:Vxxxx en fonction de la valeur de la cellule D de la ligne (cellule D adjacente).

Est-ce ceci que vous voulez ????
Oui, j'aimerai que si d2 "en cours" alors h2:v2 se modifient
Si d4 "terminé" alors h4:v4 se modifient et ainsi de suite.
Messages postés
15271
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 août 2020
1 326
Re,

Je vous fais ca.

A+
Messages postés
15271
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 août 2020
1 326
Re,

adaptez a votre besoin:

https://www.cjoint.com/c/CGij7C3hLAV

A+
Un grand merci c'est exactement ça.
Je vais essayer d'apprendre et et d'appliquer ce que vous avez eu la gentillesse de me montrer.
J'avais essayer avec Ligne mais pas comme ça et forcément aucun résultat.
On va voir si j'arrive à retenir et mettre en pratique.
Un grand merci.