Bonjour à tous,
Je suis encore novice en VBA mais je commence à vraiment m'y mettre car c'est très utile et très prenant !
Je suis actuellement en train de créer un fichier pour mon travail qui servira à la Supply Chain.
Mon fichier est alimenté par un fichier SQL mis à jour dans l'onglet SQL
Je souhaite réaliser une "Fiche_Fournisseur" qui correspond à un onglet
Donc un onglet = 1 fournisseur
La trame de chaque onglet est identique et l'originale se nomme "Modèle"
Dans le fichier SQL, le nom du fournisseur est construit comme ça
Exemple : Fournisseur "DUPONT" dans mon SQL c'est 9DUPONT0000000"
Mais je bloque complètement (manquant d'éléments) afin d'automatiser la macro de la création des onglets.
Pour résumé, je souhaite que pour chaque ligne contenant dans la colonne 3 le nom d'un fournisseur, la macro crée un onglet au nom du fournisseur, ajouter son nom en G2 (juste le nom est non le numéro avec le 9 et les 0 si possible) et ajoute les colonnes en rouge de l'onglet SQL dans chaque fiche. J'ai indiqué dans quelle colonne doit aller la colonne en dessous.
De plus, il faut un filtre au début de la macro sur la colonne D avec les caractères BCF car sinon j'aurais des lignes non voulu.
Evidemment les colonnes ne changent pas, mais les lignes varient.
De plus, j'ai 5 onglets qui ne doivent pas bouger. J'ai essayé de mettre If avec leur nom pour pas que ça boucle sur eux, mais ça ne fonctionne pas...
J'ai commencé comme ça
Et donc le but étant de mettre ces fiches à jour si j'ai des nouveaux fournisseurs dans le SQL, d'une manière automatique car la macro crée une nouvelle fiche à chaque nouveau fournisseur et mets à jour les fiches facilement.
Je pense que ce n'est pas facile... J'ai déjà fait la macro pour délimiter la zone de travail :
Mais pour la suite, je n'y arrive pas, j'ai fait des forums, j'ai lu des FAQ ou autres , mais je n'arrive pas à maîtriser tous les éléments.
Dans un soucis de confidentialité, je suis obligé de masquer toutes les données. L'onglet SQL est donc un copier coller vierge afin de voir la mise en page. J'ai remplacé le nom des fournisseurs par les lettres A, B, C etc.
Si vous avez des pistes j'en serais ravie !
Par avance, merci de votre aide !
Je suis encore novice en VBA mais je commence à vraiment m'y mettre car c'est très utile et très prenant !
Je suis actuellement en train de créer un fichier pour mon travail qui servira à la Supply Chain.
Mon fichier est alimenté par un fichier SQL mis à jour dans l'onglet SQL
Je souhaite réaliser une "Fiche_Fournisseur" qui correspond à un onglet
Donc un onglet = 1 fournisseur
La trame de chaque onglet est identique et l'originale se nomme "Modèle"
Dans le fichier SQL, le nom du fournisseur est construit comme ça
Exemple : Fournisseur "DUPONT" dans mon SQL c'est 9DUPONT0000000"
Mais je bloque complètement (manquant d'éléments) afin d'automatiser la macro de la création des onglets.
Pour résumé, je souhaite que pour chaque ligne contenant dans la colonne 3 le nom d'un fournisseur, la macro crée un onglet au nom du fournisseur, ajouter son nom en G2 (juste le nom est non le numéro avec le 9 et les 0 si possible) et ajoute les colonnes en rouge de l'onglet SQL dans chaque fiche. J'ai indiqué dans quelle colonne doit aller la colonne en dessous.
De plus, il faut un filtre au début de la macro sur la colonne D avec les caractères BCF car sinon j'aurais des lignes non voulu.
Evidemment les colonnes ne changent pas, mais les lignes varient.
De plus, j'ai 5 onglets qui ne doivent pas bouger. J'ai essayé de mettre If avec leur nom pour pas que ça boucle sur eux, mais ça ne fonctionne pas...
J'ai commencé comme ça
VB:
Dim Fiche_Fournisseur As Worksheet
Worksheets ("SQL").Range("A1").AutoFilter field:=4, Criteria1:=BCF
For Each Fiche_Fournisseur In Worksheets
'On met des exceptions sur les feuilles qui doivent rester intactes
If Fiche_Fournisseur = "SQL" Or Fiche_Fournisseur = "Infos" Or Fiche_Fournisseur = "Assistant" Or Fiche_Fournisseur = "Suivi_AR" Or Fiche_Fournisseur = "Modèle" Then
Else If
'Je supprime toutes les données des fiches pour faire place aux nouvelles
Sheets("Fiche_Fournisseur").Range("C4:S254").Clear
Next
Et donc le but étant de mettre ces fiches à jour si j'ai des nouveaux fournisseurs dans le SQL, d'une manière automatique car la macro crée une nouvelle fiche à chaque nouveau fournisseur et mets à jour les fiches facilement.
Je pense que ce n'est pas facile... J'ai déjà fait la macro pour délimiter la zone de travail :
VB:
Dim zone As Range
Dim DernLigne As Long, DernColonne As Integer
'dernière ligne colonne A
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
'dernière colonne ligne 1
DernColonne = Cells(1, Cells.Columns.Count).End(xlToLeft).Column - 12
Set maPlage = Range(Cells(1, 1), Cells(DernLigne, DernColonne))
zone.Select
Mais pour la suite, je n'y arrive pas, j'ai fait des forums, j'ai lu des FAQ ou autres , mais je n'arrive pas à maîtriser tous les éléments.
Dans un soucis de confidentialité, je suis obligé de masquer toutes les données. L'onglet SQL est donc un copier coller vierge afin de voir la mise en page. J'ai remplacé le nom des fournisseurs par les lettres A, B, C etc.
Si vous avez des pistes j'en serais ravie !
Par avance, merci de votre aide !