Listing des coordonnées des cellules correspondant à un critère
HUGO BASS
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à toutes et tous,
Je cherche à partir d'un tableau contenant plusieurs données à faire un listing des adresses de toutes les cellules correspondant à un critère donnée. En l'occurrence les valeurs non numériques.
Ci joint fichier exemple.
https://www.cjoint.com/c/DIsqL1hOvWF
Merci
Cordialement
Hugues
Je cherche à partir d'un tableau contenant plusieurs données à faire un listing des adresses de toutes les cellules correspondant à un critère donnée. En l'occurrence les valeurs non numériques.
Ci joint fichier exemple.
https://www.cjoint.com/c/DIsqL1hOvWF
Merci
Cordialement
Hugues
A voir également:
- Listing des coordonnées des cellules correspondant à un critère
- Coordonnées gps - Guide
- Verrouiller des cellules excel - Guide
- Additionner des cellules excel - Guide
- Votre correspondant n'est pas joignable - Forum Mobile
- Ajoutez à la liste de contacts ana le goff, inscrite le 27 novembre 2015, dans la catégorie i. puis triez les contacts en les classant : par ordre alphabétique de leur nom de famille (critère principal), puis par date du plus récent au plus ancien (critère secondaire). quel mot apparaît à la verticale dans la colonne "catégorie" entre les lignes 200 et 209 (en-tête compris) ? ✓ - Forum Word
5 réponses
Bonjour
un exemple
https://www.cjoint.com/?3Isrd3Zqy6O
Cdlmnt
un exemple
https://www.cjoint.com/?3Isrd3Zqy6O
Cdlmnt
HUGO BASS
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
merci
Bonjour CCM81,
Merci pour ta réponse rapide que je retiendrais si je n'arrive pas par formule car elle répond à ma problématique même si j'aurais préféré éviter les macros.
J'ai essayé aussi en nommant une plage de donnée par formule matricielle avec fonction adresse et est num mais sans succès.
Cordialement
Merci pour ta réponse rapide que je retiendrais si je n'arrive pas par formule car elle répond à ma problématique même si j'aurais préféré éviter les macros.
J'ai essayé aussi en nommant une plage de donnée par formule matricielle avec fonction adresse et est num mais sans succès.
Cordialement
Bonjour,
Je viens de dénicher un résultat par formule? Cependant, c'est tellement alambiqué que la solution par macro reste la plus simple...
La solution par formule passe par un champ intermédiaire de la même taille que le tableau initial. On peut le masquer par la suite.
La formule à étendre dans ce champ intermédiaire est :
=SI(NON(ESTNUM(B4:H32));CELLULE("adresse";B4:H32);"")
Formule matricielle, à valider par Ctrl+Shift+Entrée
Ensuite, ne reste qu'à représenter les cellules non vides de ce champ dans la colonne ou tu veux les résultats.
Pour cela, la formule matricielle de Jacques Boisgontier, trouvée ICI fonctionne :
=SI(LIGNES($1:1)<=NBVAL(K4:Q32);INDEX(K4:Q32;MOD(PETITE.VALEUR(SI(K4:Q32<>"";COLONNE(K4:Q32)*10^5+LIGNE(INDIRECT("1:"&LIGNES(K4:Q32))));LIGNES($1:1));10^5);ENT(PETITE.VALEUR(SI(K4:Q32<>"";COLONNE(K4:Q32)*10^5+LIGNE(INDIRECT("1:"&LIGNES(K4:Q32))));LIGNES($1:1))/10^5)-COLONNE(K4:Q32)+1);"")
ou K4:Q32 est le champ intermédiaire.
Formule matricielle, à valider par Ctrl+Shift+Entrée
Ci-joint ton classeur exemple en retour
Je viens de dénicher un résultat par formule? Cependant, c'est tellement alambiqué que la solution par macro reste la plus simple...
La solution par formule passe par un champ intermédiaire de la même taille que le tableau initial. On peut le masquer par la suite.
La formule à étendre dans ce champ intermédiaire est :
=SI(NON(ESTNUM(B4:H32));CELLULE("adresse";B4:H32);"")
Formule matricielle, à valider par Ctrl+Shift+Entrée
Ensuite, ne reste qu'à représenter les cellules non vides de ce champ dans la colonne ou tu veux les résultats.
Pour cela, la formule matricielle de Jacques Boisgontier, trouvée ICI fonctionne :
=SI(LIGNES($1:1)<=NBVAL(K4:Q32);INDEX(K4:Q32;MOD(PETITE.VALEUR(SI(K4:Q32<>"";COLONNE(K4:Q32)*10^5+LIGNE(INDIRECT("1:"&LIGNES(K4:Q32))));LIGNES($1:1));10^5);ENT(PETITE.VALEUR(SI(K4:Q32<>"";COLONNE(K4:Q32)*10^5+LIGNE(INDIRECT("1:"&LIGNES(K4:Q32))));LIGNES($1:1))/10^5)-COLONNE(K4:Q32)+1);"")
ou K4:Q32 est le champ intermédiaire.
Formule matricielle, à valider par Ctrl+Shift+Entrée
Ci-joint ton classeur exemple en retour
Re Bonjour CCM81,
Je me plonge dans ta macro (merci cela fonctionne à merveille) et si en plus de répondre à ma problématique elle pouvait transformer l'adresse des cellules obtenues en lien hypertexte, alors là sans contestation possible je choisirais ta solution par macro plutôt que par formule.
A ton avis est ce réalisable ?
Merci
Cordialement
Hugues
Je me plonge dans ta macro (merci cela fonctionne à merveille) et si en plus de répondre à ma problématique elle pouvait transformer l'adresse des cellules obtenues en lien hypertexte, alors là sans contestation possible je choisirais ta solution par macro plutôt que par formule.
A ton avis est ce réalisable ?
Merci
Cordialement
Hugues
Re-
Petite variante à la version de CCM81, par formule personnalisée.
Dans le module ou se trouve déjà le code de CCM81, copiez-collez ce code :
Dans la feuille de calcul, en J4 (par exemple) :
=Adresses_Cel_Non_Num("B4:H32";LIGNE()-3)
Le -3 ici est parce que l'on saisi la formule en J4. En K1, il conviendrait d'écrire :
=Adresses_Cel_Non_Num("B4:H32";LIGNE())
Petite variante à la version de CCM81, par formule personnalisée.
Dans le module ou se trouve déjà le code de CCM81, copiez-collez ce code :
Function Adresses_Cel_Non_Num(Plage As String, Numero As Long) Dim maPlage As Range, cel As Range, tb(), i As Long ReDim Preserve tb(i) tb(0) = "" Set maPlage = Range(Plage) For Each cel In maPlage If Not IsNumeric(cel.Value) Or cel.Value = "" Then i = i + 1 ReDim Preserve tb(i) tb(i) = cel.Address End If Next cel If Numero > UBound(tb) Then Numero = 0 Adresses_Cel_Non_Num = tb(Numero) End Function
Dans la feuille de calcul, en J4 (par exemple) :
=Adresses_Cel_Non_Num("B4:H32";LIGNE()-3)
Le -3 ici est parce que l'on saisi la formule en J4. En K1, il conviendrait d'écrire :
=Adresses_Cel_Non_Num("B4:H32";LIGNE())
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour les liens hypertexte vers les cellules
Salutations à pijaku au passage
Cdlmnt
Const T = "Tablo"
Public Sub ListeAdr()
Dim cel As Range, deb As Range, k As Long, adr As String, f As String
Set deb = Selection
f = ActiveSheet.Name
k = 0
For Each cel In Range(T)
If Not IsNumeric(cel.Value) Or cel.Value = "" Then
adr = cel.Address
ActiveSheet.Hyperlinks.Add Anchor:=deb.Offset(k, 0), Address:="", SubAddress:= _
f & "!" & adr, TextToDisplay:=adr
k = k + 1
End If
Next cel
End Sub
Salutations à pijaku au passage
Cdlmnt