Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Range et compagnie !

5 réponses
Avatar
JFL
Bonjour à tous !

Je viens vers vous pour solutionner un problème qui va très certainement
vous sembler simple à résoudre !


Dans une feuille j'ai un tableau nomme "Produits" qui est articulé de la
manière suivante

CodeProduit Libellé Quantité
201 Tradition 24
202 Rosé
203 Grand Cru 12


Je cherche au travers d'une fonction à récupérer dans une variable texte
le code du produit si la quantité commandée est non nulle.

En sachant que la variable texte devra séparer les différents codes par
un retour chariot pour "afficher" le texte en colonne.

Ex : la fonction devra me retourner:

201
203

Sur deux lignes grâce au retour chariot entre le "201" et le "203".


Suis je clair ?


Grand merci par avance à ceux qui me comprendront !


JFL

5 réponses

Avatar
Daniel.C
Bonjour.
Dans la fonction suivante, "plage" représente la plage des codes (de 201 à
203 de ton exemple) :

Function test1(Plage As Range)
Dim c As Range
For Each c In Plage
If c.Offset(, 2) <> "" Then test1 = test1 & c & Chr(10)
Next c
test1 = Left(test1, Len(test1) - 1)
End Function

Cordialement.
Daniel
PS. Dans le format de la cellule, tu dois cocher "renvoyer à la ligne
automatiquement"
"JFL" a écrit dans le message de news:
OdGjZ1%
Bonjour à tous !

Je viens vers vous pour solutionner un problème qui va très certainement
vous sembler simple à résoudre !


Dans une feuille j'ai un tableau nomme "Produits" qui est articulé de la
manière suivante

CodeProduit Libellé Quantité
201 Tradition 24
202 Rosé
203 Grand Cru 12


Je cherche au travers d'une fonction à récupérer dans une variable texte
le code du produit si la quantité commandée est non nulle.

En sachant que la variable texte devra séparer les différents codes par un
retour chariot pour "afficher" le texte en colonne.

Ex : la fonction devra me retourner:

201
203

Sur deux lignes grâce au retour chariot entre le "201" et le "203".


Suis je clair ?


Grand merci par avance à ceux qui me comprendront !


JFL


Avatar
MichDenis
Tu peux utiliser le filtre automatique ou
le filtre élaboré qui lui te permet de choisir la
ou les colonnes à afficher dans ta plage de résultat
de même que l'endroit où tu veux copier ces données.

Au besoin d'un code VBA, tu pars l'enregistreur de code VBA
et tu exécutes le filtre élaboré désiré ....Tu auras presque tout
le code ....et c'est beaucoup plus rapide que les boucles.!

Au besoin, quelqu'un d'autre peut t'envoyer un exemple de code !



"JFL" a écrit dans le message de news:
OdGjZ1%
Bonjour à tous !

Je viens vers vous pour solutionner un problème qui va très certainement
vous sembler simple à résoudre !


Dans une feuille j'ai un tableau nomme "Produits" qui est articulé de la
manière suivante

CodeProduit Libellé Quantité
201 Tradition 24
202 Rosé
203 Grand Cru 12


Je cherche au travers d'une fonction à récupérer dans une variable texte
le code du produit si la quantité commandée est non nulle.

En sachant que la variable texte devra séparer les différents codes par
un retour chariot pour "afficher" le texte en colonne.

Ex : la fonction devra me retourner:

201
203

Sur deux lignes grâce au retour chariot entre le "201" et le "203".


Suis je clair ?


Grand merci par avance à ceux qui me comprendront !


JFL
Avatar
a supprimer
Grand merci à vous deux !

Je retiens la solution VBA qui me convient parfaitement.

En fait je l'utilise ce code pour établir un facture pro-forma à
destination de nos clients.

Bien évidemment j'utilise des valeurs monétaires. Comment faire pour
obtenir que le contenu d'une cellule (14,30 € par exemple) me revienne
correctement formatée c'est à dire "14,30 €" et non pas "14,3", sachant
que la fameuse valeur texte transmise peut contenir sur plusieurs lignes
différentes valeurs monétaires ?

Par avance merci !

JFL
Avatar
Daniel.C
Si tu sélectionnes une plage de valeurs numériques :

Function test1(Plage As Range)
Dim c As Range
For Each c In Plage
If c.Offset(, 2) <> "" Then test1 = _
test1 & Format(c, "€ #,##0.00") & Chr(10)
Next c
test1 = Left(test1, Len(test1) - 1)
End Function

Daniel
"a supprimer" <"jfl51200(a supprimer)-excel"@yahoo.fr> a écrit dans le
message de news:
Grand merci à vous deux !

Je retiens la solution VBA qui me convient parfaitement.

En fait je l'utilise ce code pour établir un facture pro-forma à
destination de nos clients.

Bien évidemment j'utilise des valeurs monétaires. Comment faire pour
obtenir que le contenu d'une cellule (14,30 € par exemple) me revienne
correctement formatée c'est à dire "14,30 €" et non pas "14,3", sachant
que la fameuse valeur texte transmise peut contenir sur plusieurs lignes
différentes valeurs monétaires ?

Par avance merci !

JFL


Avatar
a supprimer
Cela fonctionne merveilleusement bien !

Merci à vous !


JFL