Renvoyer le titre de plusieurs colonnes
Fermé
amandinedo
Messages postés
3
Date d'inscription
samedi 15 septembre 2018
Statut
Membre
Dernière intervention
16 septembre 2018
-
15 sept. 2018 à 21:53
amandinedo Messages postés 3 Date d'inscription samedi 15 septembre 2018 Statut Membre Dernière intervention 16 septembre 2018 - 16 sept. 2018 à 22:33
amandinedo Messages postés 3 Date d'inscription samedi 15 septembre 2018 Statut Membre Dernière intervention 16 septembre 2018 - 16 sept. 2018 à 22:33
A voir également:
- Renvoyer le titre de plusieurs colonnes
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Je cherche une chanson dont je ne connais pas le titre - Guide
- Trouver un film sans le titre - Télécharger - Divers TV & Vidéo
- Word colonnes indépendantes - Guide
4 réponses
via55
Messages postés
14471
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
29 août 2024
2 727
16 sept. 2018 à 01:11
16 sept. 2018 à 01:11
Bonsoir amandinedo
Une ^possibilité avec une fonction peronnalisée à mettre dans un module de l'éditeur VBA :
ALT+F11 pour ouvrir l'éditeur
Insertion - Module
Dans la page blanche copier-coller la macro suivante et fermer l'éditeur
La fonction s'utilise alors comme une fonction Excel selon la syntaxe :
=(plage à traiter;valeur cherchée)
exemple en AA3 : =(A3:Z3;"ko")
Si les titres sont sur une autre ligne que la ligne 1 changer la valeur 1 dans Cells(1, cell.Column).
Cdlmnt
Via
Une ^possibilité avec une fonction peronnalisée à mettre dans un module de l'éditeur VBA :
ALT+F11 pour ouvrir l'éditeur
Insertion - Module
Dans la page blanche copier-coller la macro suivante et fermer l'éditeur
Function col_val(plage As Range, cible As String) For Each cell In plage ' boucle sur les cellules de la plage choisie If cell.Value = cible Then texte = texte & Cells(1, cell.Column).Value & ";" 'si la valeur de la cellule correspond à la cible choisie on ajoute le titre se situant en ligne 1 et un ; Next affiche = Left(texte, Len(texte) - 1) ' supprime le dernier ; col_val = affiche ' retourne la concatenation des titres End Function
La fonction s'utilise alors comme une fonction Excel selon la syntaxe :
=(plage à traiter;valeur cherchée)
exemple en AA3 : =(A3:Z3;"ko")
Si les titres sont sur une autre ligne que la ligne 1 changer la valeur 1 dans Cells(1, cell.Column).
Cdlmnt
Via
via55
Messages postés
14471
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
29 août 2024
2 727
16 sept. 2018 à 22:00
16 sept. 2018 à 22:00
Bonjour
l'erreur ne vient pas de toi mais de moi ! désolé je suis allé trop vite en tapant mon exemple
Il faut dans la formule commencer par le nom de la fonction :
=col_val(J4:AU4;"ko")
Cdlmnt
Via
l'erreur ne vient pas de toi mais de moi ! désolé je suis allé trop vite en tapant mon exemple
Il faut dans la formule commencer par le nom de la fonction :
=col_val(J4:AU4;"ko")
Cdlmnt
Via
amandinedo
Messages postés
3
Date d'inscription
samedi 15 septembre 2018
Statut
Membre
Dernière intervention
16 septembre 2018
16 sept. 2018 à 10:13
16 sept. 2018 à 10:13
Bonjour,
Merci de cet envoi qui me semblait très prometteur mais ... je n'arrive pas à obtenir un résultat :
J'ai bien ouvert VBA, inséré un module, copier coller le code (modifié le 1 dans (cells(1, cell.column) par un 3 car la ligne des entêtes est en ligne 3 et refermé.
Ensuite mes données étant de la colomne J à AU j'ai mis en cellule AV4
=(J4:AU4;"ko")
et ... j'ai un message qui m'indique que la formule que j'ai tapé contient une erreur ...
pouvez vous me dire où j'ai faux ?
Encore merci de votre aide (j'avoue que mes cours de VBA datent de fort longtemps ...) !
Merci de cet envoi qui me semblait très prometteur mais ... je n'arrive pas à obtenir un résultat :
J'ai bien ouvert VBA, inséré un module, copier coller le code (modifié le 1 dans (cells(1, cell.column) par un 3 car la ligne des entêtes est en ligne 3 et refermé.
Ensuite mes données étant de la colomne J à AU j'ai mis en cellule AV4
=(J4:AU4;"ko")
et ... j'ai un message qui m'indique que la formule que j'ai tapé contient une erreur ...
pouvez vous me dire où j'ai faux ?
Encore merci de votre aide (j'avoue que mes cours de VBA datent de fort longtemps ...) !
amandinedo
Messages postés
3
Date d'inscription
samedi 15 septembre 2018
Statut
Membre
Dernière intervention
16 septembre 2018
16 sept. 2018 à 22:33
16 sept. 2018 à 22:33
Bonsoir,
Au top du top !
Ca fonctionne parfaitement.
J'ai juste ajouté un retour à la ligne à la place du ";" car cela me convenait mieux en terme de lisibilité et pour ne pas avoir le #valeur! lorsque je n'ai pas de "ko" j'ai modifié la formule avec un sierreur.
Je colle le tout ci dessous si d'autres veulent s'en servir un jour (j'avoue que je pratique souvent comme ça).
Encore merci de ta précieuse aide.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Function col_val(plage As Range, cible As String)
For Each cell In plage ' boucle sur les cellules de la plage choisie
If cell.Value = cible Then texte = texte & Cells(3, cell.Column).Value & vbCrLf 'si la valeur de la cellule correspond à la cible choisie on ajoute le titre se situant en ligne 1 et un ;
Next
affiche = Left(texte, Len(texte) - 1) ' supprime le dernier ;
col_val = affiche ' retourne la concatenation des titres
End Function
=SIERREUR(col_val(J4:AU4;"ko");"")
Au top du top !
Ca fonctionne parfaitement.
J'ai juste ajouté un retour à la ligne à la place du ";" car cela me convenait mieux en terme de lisibilité et pour ne pas avoir le #valeur! lorsque je n'ai pas de "ko" j'ai modifié la formule avec un sierreur.
Je colle le tout ci dessous si d'autres veulent s'en servir un jour (j'avoue que je pratique souvent comme ça).
Encore merci de ta précieuse aide.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Function col_val(plage As Range, cible As String)
For Each cell In plage ' boucle sur les cellules de la plage choisie
If cell.Value = cible Then texte = texte & Cells(3, cell.Column).Value & vbCrLf 'si la valeur de la cellule correspond à la cible choisie on ajoute le titre se situant en ligne 1 et un ;
Next
affiche = Left(texte, Len(texte) - 1) ' supprime le dernier ;
col_val = affiche ' retourne la concatenation des titres
End Function
=SIERREUR(col_val(J4:AU4;"ko");"")