OVH Cloud OVH Cloud

Macro pour tri suivant fournisseur

7 réponses
Avatar
SebSCO
Bonjour à tous !

Voilà ma problématique:
Je reçois régulièrement un fichier excel avec des références fournisseurs et j'aimerais pouvoir créer une colonne supplémentaire à mon tableau avec le nom de chaque fournisseur.

Je m'explique:
En début de mois, je reçois un tableau avec toutes les commandes de tous nos fournisseurs, mais mélangé et avec un nom du genre xxx.xxx.COT.xxx ou xxx.xxx.SAD.xxx. en colonne G
Ce tableau contient un nombre de lignes variables en fonction de la quantité de commandes.

Je souhaiterais réaliser une macro qui en fonction de chaque fournisseur, rajouterai en colonne H, le nom du dit fournisseur à des fins de statistiques.

Quelqu'un aurait la gentillesse de m'aider, svp ?

Merci d'avance pour votre aide.
Sébastien

7 réponses

Avatar
MichD
Bonjour,
Je n'ai pas compris ta question.
En colonne G, tu as des noms de ce type : xxx.xxx.COT.xxx
En colonne H, tu veux extraire le nom de la colonne G
Dans cette chaîne de caractères, qu'est-ce qui constitue le nom du
fournisseur que tu veux extraire? Est-ce que chaque section de tous les
noms a des séquences de 3 caractères séparés par un point (.) ?
Donne un exemple précis de ce que tu veux. Tu peux modifier la séquence
des lettres et des chiffres qui soient différents de tes vraies données,
c'est pour avoir une meilleure idée du problème.
MichD
Le 28/10/19 à 03:33, SebSCO a écrit :
Bonjour à tous !
Voilà ma problématique:
Je reçois régulièrement un fichier excel avec des références fournisseurs et
j'aimerais pouvoir créer une colonne supplémentaire à mon tableau avec le nom de
chaque fournisseur.
Je m'explique:
En début de mois, je reçois un tableau avec toutes les commandes de tous nos
fournisseurs, mais mélangé et avec un nom du genre xxx.xxx.COT.xxx ou
xxx.xxx.SAD.xxx. en colonne G
Ce tableau contient un nombre de lignes variables en fonction de la quantité de
commandes.
Je souhaiterais réaliser une macro qui en fonction de chaque fournisseur,
rajouterai en colonne H, le nom du dit fournisseur à des fins de statistiques.
Quelqu'un aurait la gentillesse de m'aider, svp ?
Merci d'avance pour votre aide.
Sébastien
Avatar
sebsco
Le lundi 28 Octobre 2019 à 11:30 par MichD :
Bonjour,
Je n'ai pas compris ta question.
En colonne G, tu as des noms de ce type : xxx.xxx.COT.xxx
En colonne H, tu veux extraire le nom de la colonne G
Dans cette chaîne de caractères, qu'est-ce qui constitue le nom du
fournisseur que tu veux extraire? Est-ce que chaque section de tous les
noms a des séquences de 3 caractères séparés par un
point (.) ?
Donne un exemple précis de ce que tu veux. Tu peux modifier la
séquence
des lettres et des chiffres qui soient différents de tes vraies
données,
c'est pour avoir une meilleure idée du problème.
MichD
Le 28/10/19 à 03:33, SebSCO a écrit :
Bonjour à tous !
Voilà ma problématique:
Je reçois régulièrement un fichier excel avec des
références fournisseurs et
j'aimerais pouvoir créer une colonne supplémentaire à mon
tableau avec le nom de
chaque fournisseur.
Je m'explique:
En début de mois, je reçois un tableau avec toutes les commandes
de tous nos
fournisseurs, mais mélangé et avec un nom du genre
xxx.xxx.COT.xxx ou
xxx.xxx.SAD.xxx. en colonne G
Ce tableau contient un nombre de lignes variables en fonction de la
quantité de
commandes.
Je souhaiterais réaliser une macro qui en fonction de chaque
fournisseur,
rajouterai en colonne H, le nom du dit fournisseur à des fins de
statistiques.
Quelqu'un aurait la gentillesse de m'aider, svp ?
Merci d'avance pour votre aide.
Sébastien
Dans la colonne G, j'ai des noms de type
CRMAF4SO_1021, DTFIG7CO_5023,...
et je souhaite extraire le SO ou CO (7ème et 8ème caractère) et le copier dans la colonne H
Comme d'un mois sur l'autre, le nombre de ligne du tableau est variable, je cherche à faire cela sous forme d'une boucle avec un arrêt lorsque je suis arrivé au bout des lignes à traiter.
Est-ce un peu plus clair?
Sébastien.
Avatar
MichD
Le 28/10/19 à 07:48, sebsco a écrit :
CMB02COG10219, CMB80CST10219, CMB75SAD08201

La formule : =STXT(A1;6;3)
A1 = la cellule où est le texte
6 = le premier caractère à extraire
3 = le nombre de caractères de la chaîne à extraire.
MichD
Avatar
sebsco
Le lundi 28 Octobre 2019 à 14:02 par MichD :
Le 28/10/19 à 07:48, sebsco a écrit :
CMB02COG10219, CMB80CST10219, CMB75SAD08201
La formule : =STXT(A1;6;3)
A1 = la cellule où est le texte
6 = le premier caractère à extraire
3 = le nombre de caractères de la chaîne à extraire.
MichD
Merci. Pour la première partie ça fontionne.
Comment puis-je intégrer ça dans une boucle pour traiter l'ensemble des lignes du tableau ?
Avatar
benoit
MichD wrote:
Le 28/10/19 à 07:48, sebsco a écrit :
CMB02COG10219, CMB80CST10219, CMB75SAD08201

La formule : =STXT(A1;6;3)
A1 = la cellule où est le texte
6 = le premier caractère à extraire
3 = le nombre de caractères de la chaîne à extraire.

Avec un SI.ERREUR, ou equivalent, pour mettre du vide ou une string
quelconque de charactères si la cellule de référence est vide.
--
Vie : n.f. maladie mortelle sexuellement transmissible
Benoit chez leraillez.com
Avatar
MichD
Tu mets la formule dans la première cellule de ton tableau et tu la
recopies sur autant de lignes que tu veux. Pour se faire, passe le
curseur de la souris dans le coin inférieur droit de la cellule et au
point d'intersection des lignes, observe, le curseur devient une petite
croix. Il ne reste plus qu'à conserver le bouton de la souris enfoncé et
tirer vers le bas.
MichD
Avatar
Péhemme
... et si tu veux le faire par macro :
dans un module standard :
'à adapter indices des lignes et colonnes selon tes besoins
Sub NewTest()
Dim DerL As Long, i As Long
DerL = Cells(Rows.Count, 7).End(xlUp).Row
For i = 9 To DerL
Cells(i, 11) = Mid(Cells(i, 7), 6, 3)
Next
End Sub
Michel
"sebsco" a écrit dans le message de groupe de discussion :
Le lundi 28 Octobre 2019 à 14:02 par MichD :
Le 28/10/19 à 07:48, sebsco a écrit :
CMB02COG10219, CMB80CST10219, CMB75SAD08201

La formule : =STXT(A1;6;3)
A1 = la cellule où est le texte
6 = le premier caractère à extraire
3 = le nombre de caractères de la chaîne à extraire.
MichD

Merci. Pour la première partie ça fontionne.
Comment puis-je intégrer ça dans une boucle pour traiter l'ensemble des
lignes
du tableau ?