Affichage résultat en lignes

Bonjour,

Je cherche à afficher une série de valeurs obtenues par une requete, en ligne. Una valeur par ligne

J'ai un résultat de requete en B3, une série de code séparés par un ; ou autre, et je souhaiterai afficher à un autre endroit ces codes, mais en ligne. Résultat souhaité en E4, E5, E6, E7...

Merci.

Bonjour,

Avec une fonction perso qui retourne un tableau (donc, à valider avec Ctrl+Maj+Entrée). Tu sélectionnes un nombre de cellules correspondant au nombre de codes (dans ton exemple, 4 cellules) puis dans la barre de formule tu colles cette formule :=Tableau(B3;";") et tu la valide en matricielle :

Function Tableau(Cel As Range, Sep As String) As String()

    Dim Tbl() As String
    Dim T
    Dim I As Long

    T = Split(Cel.Value, Sep)

    ReDim Tbl(1 To UBound(T) + 1, 1 To 1)

    For I = 1 To UBound(Tbl): Tbl(I, 1) = Trim(T(I - 1)): Next I

    Tableau = Tbl

End Function

Bonjour Theze,

Merci pour ta solution.

J'ai trouvé une formule qui permet à l'inverse de regroupper les valeurs de plusieurs ligne, dans une seule cellule.

=B3&CAR(9)&B4

Je l'ai appliqué sur mon fichier.

Ne serait ce pas possible de faire l'inverse de cette facon.

Car la fonction tableau, j'ai franchement du mal a la mettre en place.

Bonjour,

Voici ton classeur avec ma fonction tableau :

Bonjour chile, Theze,

Ton fichier est un .xlsx : il ne peut pas contenir de code VBA ! il faut obligatoirement le convertir en .xlsm ; je l'ai fait pour toi :

⚠ Note bien qu'en B3, j'ai enlevé le point-virgule final !

Formule en D11 : =B3 & " ; " & B4"code001 ; code002 ; code003 ; code004 ; code005"

Pour avoir le résultat qui est au-dessus, j'ai sélectionné la plage de 4 cellules D4:D7 ; j'ai tapé dans la barre de formules la formule de Theze : =Tableau(B3;";") et au lieu d'appuyer sur Entrée, j'ai fait Ctrl Maj Entrée

Alt F11 pour voir le code VBA de la fonction de Theze, puis pour revenir sur Excel


@Theze : quand j'ai commencé à taper mon message, le tien n'était pas encore présent, et comme j'ai été long à saisir mon texte et à le mettre en forme, tu as tapé et posté ton message entre-temps ; je ne l'ai vu qu'après avoir validé ; désolé pour le croisement ! je laisse quand même mon message pour ces 2 raisons : sans avoir vu ton nouveau fichier je ne sais pas si tu as fait ma modif pour B3 ; et de toute façon, j'ai bien détaillé pour chile toute la marche à suivre (sauf la conversion en .xlsm et l'insertion d'un module).

@chile : je compte sur toi pour ne pas oublier de remercier Theze, car c'est lui qui a fait tout le travail !

dhany

Bonjour dhany,

@Theze : quand j'ai commencé à taper mon message, le tien n'était pas encore présent, et comme j'ai été long à saisir mon texte et à le mettre en forme, tu as tapé et posté ton message entre-temps ; je ne l'ai vu qu'après avoir validé ; désolé pour le croisement ! je laisse quand même mon message pour ces 2 raisons : sans avoir vu ton nouveau fichier je ne sais pas si tu as fait ma modif pour B3 ; et de toute façon, j'ai bien détaillé pour chile toute la marche à suivre (sauf la conversion en .xlsm et l'insertion d'un module).

absolument aucun problème, deux explications valent mieux qu'une

Ouahhh, super

C'est exactement ce que je recherche.

Merci Theze et Dhany.

Je peux vous poser une dernière question ?

Dans le cas ou j'ai par exemple seulement 3 valeurs a 'aligner', sur les 4 cellules validées en matricielle, j'ai un code erreur sur la 4e puisque je n'ai que 4 codes.

Dois je insérer une condition sur cette formule ou dans le code vba ?

Bonjour,

Regardes du coté d'une fonction de contrôle d'erreur (Esterreur(), Esterr(), Sierreur(), etc...)

bonjour Theze,

Merci pour la piste.

J'ai pu mettre en place Esterreur(), en lisant sur une colonne parrallele, car je n'y arrive pas sur ma colonne qui contient la formule matricielle. Peut-etre que c'es tpas possible !?

Mais ca me va très bien comme ca.

Un grand merci et bravo !

Bonjour chile, Theze,

Ton fichier est un .xlsx : il ne peut pas contenir de code VBA ! il faut obligatoirement le convertir en .xlsm ; je l'ai fait pour toi :

fichier_resultat_ligne.xlsm

⚠ Note bien qu'en B3, j'ai enlevé le point-virgule final !

Formule en D11 : =B3 & " ; " & B4"code001 ; code002 ; code003 ; code004 ; code005"

Pour avoir le résultat qui est au-dessus, j'ai sélectionné la plage de 4 cellules D4:D7 ; j'ai tapé dans la barre de formules la formule de Theze : =Tableau(B3;";") et au lieu d'appuyer sur Entrée, j'ai fait Ctrl Maj Entrée

Alt F11 pour voir le code VBA de la fonction de Theze, puis pour revenir sur Excel


@Theze : quand j'ai commencé à taper mon message, le tien n'était pas encore présent, et comme j'ai été long à saisir mon texte et à le mettre en forme, tu as tapé et posté ton message entre-temps ; je ne l'ai vu qu'après avoir validé ; désolé pour le croisement ! je laisse quand même mon message pour ces 2 raisons : sans avoir vu ton nouveau fichier je ne sais pas si tu as fait ma modif pour B3 ; et de toute façon, j'ai bien détaillé pour chile toute la marche à suivre (sauf la conversion en .xlsm et l'insertion d'un module).

@chile : je compte sur toi pour ne pas oublier de remercier Theze, car c'est lui qui a fait tout le travail !

dhany

Merci encore une fois. J'ai oublié de signaler, que lorsque je n'ai qu'une seule valeur à afficher, ca me l'affiche sur toutes les cellules avec matricielle. J'ai pas réussi à réussi trouver une parade

Bonjour,

Extrait de ma première réponse :

Tu sélectionnes un nombre de cellules correspondant au nombre de codes...

Tu as plusieurs solutions, ajouter des séparateurs (ici, le point virgule) pour créer des dimensions "vides" dans le tableau de retour et dans ce cas rien ne sera affiché ou encore utiliser une colonne intermédiaire et contrôler si il y a une valeur d'erreur. ton classeur en retour.

De toutes façons, quelle que soit la formule matricielle que tu utilises (native d'Excel ou perso) cette formule retourne un tableau et si la zone sélectionnée est plus grande que le tableau retourné, Excel rempli avec #N/A.

Je te re poste ton classeur

Rechercher des sujets similaires à "affichage resultat lignes"