Automatisation Remplissage

Brudy

XLDnaute Junior
Bonjour à tous, merci de me lire

Je suis face à un besoin d'automatisation d'une tâche redondante.

Je dois remplir une fiche de 5/6 informations qui sont des copier/coller d'une liste, mais celle ci change par mois, et donc peut s'allonger.

Mon problème, ou plutôt mon besoin : Une macro permettant de remplir la fiche 1, passer au deuxième produit, remplir la fiche 2, puis si la liste de produit n'est pas arrivée en bas, remplir une autre fiche, etc etc. jusqu'en bas de la liste.

Difficultés :
-Prendre en compte la taille de la liste (Si pas fini, continuer)
-Ajouter une fiche vierge à chaque nouvelle ligne

Je vous joint l'idée de ce que j'ai. Je serais ravis de discuter avec vous pour m'améliorer dans la gestion d'une telle macro.
 

Pièces jointes

  • Exemple DownExcel.xlsx
    377.6 KB · Affichages: 29

Brudy

XLDnaute Junior
Finalement, pour simplifier la chose, les fiches vierges seront présentent, ça évitera d'avoir à insérer ça pour chaque ligne produit présentes.

Cependant, il me manque la manière de dire prendre première ligne, insérer les infos dans la fiche aux endroit clés, passer à la deuxième ligne, insérer, et stop si ligne suivante vide. Finalement, il pourrait s'agir seulement de saisir le code EAN dans la fiche, et j'insère des fonctions recherche pour les autres informations !

Merci d'avance !
 

vgendron

XLDnaute Barbatruc
Hello
un exemple en PJ: cliquer sur bouton
j'ai mis des commmentaires dans le code: je n'ai mis que 3 infos dans la nouvelle fiche créée.. je te laisse adapater pour ajouter les infos manquantes
 

Pièces jointes

  • Exemple DownExcel.xlsm
    27.9 KB · Affichages: 32

Brudy

XLDnaute Junior
Hey Vgendron, merci beaucoup pour ta réponse !

C'est génial, juste une petite question, tu crées une feuille pour chaque code, mais est ce que c'est possible que ça soit dans la même feuille et que ça s'ajoute vers le bas ? Avec les pattern vierge déjà présent.
 

Pièces jointes

  • Exemple DownExcel.xlsm
    35.1 KB · Affichages: 26

vgendron

XLDnaute Barbatruc
hello
nouveau code
VB:
Sub CreerFicheUnique()
Application.ScreenUpdating = False

Dim tabloListe() As Variant

With Sheets("Liste")
    tablo = .UsedRange.Value 'on place toutes les données de la feuille Liste dans un tablo vba
End With

ActiveWorkbook.Sheets.Add 'on créé une nouvelle feuille vierge
ActiveSheet.Name = "Fiches Produits" 'donne "Fiches Produits" comme nom de la nouvelle fiche
Sheets("Fiche vierge").Rows("1").Copy Sheets("Fiches Produits").Rows("1") 'on recopie la première ligne


For i = LBound(tablo, 1) + 1 To UBound(tablo, 1) 'pour chaque ligne du tablo
    With Sheets("Fiches Produits")
        Fin = .UsedRange.Rows.Count + 1 'on detecte la dernière ligne de la feuille
        Sheets("Fiche vierge").Rows("2:21").Copy .Rows(Fin) 'on y colle le "modèle" de fiche
        Debut = Fin + 4 'on calcule la première ligne de cette nouvelle fiche
        .Range("D" & Debut) = tablo(i, 4) 'libelle en D6
        .Range("D" & Debut + 1) = tablo(i, 13) 'fournisseur en D7
        .Range("D" & Debut + 2) = tablo(i, 8) 'EAN en D8
    End With
Next i
Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 027
Messages
2 084 763
Membres
102 657
dernier inscrit
Ferdy