VBA Excel : Trouver l'adresse d'une valeur [Fermé]

Messages postés
8
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
25 juillet 2008
- - Dernière réponse :  joad5623 - 14 sept. 2015 à 10:40
Bonjour tout le monde !
J'aimerai savoir comment récupérer l'adresse d'une cellule contenant une valeur donnée.

Par exemple :
je cherche la valeur "Value" sur une feuille
et je set nb_lin comme le numero de ligne ou se trouve la valeur et nb_col le numéro de colonne de cette même cellule, et ce pour pouvoir réutiliser nb_lin et nb_col plus tard dans la macro ?

Comment puis-je faire ?
Merci
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3715
9
Merci
bonjour

Pour supprimer toutes tes lignes avec une cellule égale à 300 entièrement tu peux utiliser ceci :
Dim cel As Range
Do
    Set cel = Cells.Find(What:="300", LookAt:=xlWhole)
    If Not cel Is Nothing Then cel.EntireRow.Delete
Loop While Not cel Is Nothing
End Sub

xlWhole pour valeur entière de la cellule et xlPart pour valeur partielle

Dire « Merci » 9

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

CCM 70626 internautes nous ont dit merci ce mois-ci

Merci beaucoup gbinforme ca marche comme sur des roulettes!! Mon programme a bien avancé maintenant.
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3715
4
Merci
bonjour

Si tu fais set cel = Find(What:="Value"), avec cel.row tu as la ligne, avec cel.column tu as la colonne et tu peux les utiliser tant que tu n'as pas changé la valeur.

D'autre part tu peux sélectionner la cellule avec cel.select

Bien sûr "cel" peut être remplacé par le nom de ton choix.

En espérant avoir répondu à ton interrogation.
ça ne fonctionne pas ça !
j'ai mis :
Private Sub B2_afterupdate()
Dim bet As String
Set cel = Find(What:="B2.value")

With Sheets("Bétons")
B3.Value = Cells(cel.Row, 5)
End With


Je veux faire ça pour eviter de faire un vlookup vu que ça Beug tout le temps
gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3715 -
Bonjoiur,

Tu viens réveiller un sujet vieux de 4 ans : ouvres un sujet propre à toi.
0
Merci
Salut, je rencontre en ce moment le même problème, je recherche la valeur "300" dans mon tableur excel afin de supprimer la ligne où se trouve cette valeur. Seulement voilà, je rencontre 2 problèmes, le premier est que je n'arrive pas a extraire l'adresse de la cellule afin de supprimer la ligne, il m'affiche l'adresse comme cela : $A$26 alors que pour supprimer la ligne il faut utiliser cette commande :

Rows("16:16").select
Selection.delete Shift:=xlUp

Le deuxième problème est que je recherche uniquement les cellules ou la valeur 300 est stockée, pas les cellules ou il y a 30000 ou 130056, or il y a "300" inclus dans ces chiffres, donc ces lignes sont supprimés, je recherche donc le code (en VB bien sûr) me permettant de recherche dans ma feuille Excel les lignes ou "300" apparait et les supprimer. Merci d'avance pour la réponse.
bonjour,
déclare une variable integer ou variant et stock y ta valeur, renomme la plage de cellule contenant ta valeur soit "liste"
soit
Sub test()
dim i as Variant 'car il est préférable de l'utiliser dans une boucle for each
dim ligne as Integer
dim cel as Range

For Each i in Range("liste")
if i = 300 then
Set cel = Cells.Find(what:=i)
ligne = cel.Row 'pour renvoyer le numéro de ligne
Rows(ligne).Select 'activer la igne retrouvée
Selection.delete Shift:=xlUp
Application.CutCopyMode = False
End if
Next
End Sub