Listing des coordonnées des cellules correspondant à un critère
Fermé
HUGO BASS
Messages postés
20
Date d'inscription
dimanche 11 août 2013
Statut
Membre
Dernière intervention
18 septembre 2015
-
Modifié par baladur13 le 19/09/2014 à 10:57
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 19 sept. 2014 à 11:49
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 19 sept. 2014 à 11:49
A voir également:
- Listing des coordonnées des cellules correspondant à un critère
- Coordonnées gps - Guide
- Excel additionner des cellules - Guide
- Verrouiller des cellules excel - Guide
- Votre correspondant n'est pas joignable ✓ - Forum Mobile
- Rachid a créé un raccourci (alias ou lien) du fichier expositions sur son bureau. quel est le numéro de l'icône correspondant à ce raccourci ? ✓ - Forum Logiciels
5 réponses
ccm81
Messages postés
10853
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 avril 2024
2 404
18 sept. 2014 à 17:01
18 sept. 2014 à 17:01
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
dimanche 11 août 2013
Statut
Membre
Dernière intervention
18 septembre 2015
18 sept. 2014 à 18:53
18 sept. 2014 à 18:53
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
19 sept. 2014 à 10:57
19 sept. 2014 à 10:57
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
HUGO BASS
Messages postés
20
Date d'inscription
dimanche 11 août 2013
Statut
Membre
Dernière intervention
18 septembre 2015
19 sept. 2014 à 10:38
19 sept. 2014 à 10:38
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
19 sept. 2014 à 11:08
19 sept. 2014 à 11:08
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
ccm81
Messages postés
10853
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 avril 2024
2 404
19 sept. 2014 à 11:38
19 sept. 2014 à 11:38
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
19 sept. 2014 à 11:49
19 sept. 2014 à 11:49
Juste au passage, mes salutations ccm81.
A+
A+
19 sept. 2014 à 10:33