Nouvelle ligne si cellule non vide

Bonjour !

Etant débutante en VBA et essayant depuis quelques jours (sans succès) à faire une macro viable, voila mon questionnement :

Une feuille, appelée "BASE", contient des lignes avec des références de produits qui sont disponible en plusieurs couleurs.

Exemple : sur une ligne = ref produit 0001 / code blanc / code gris /...

Ensuite, j'aimerais insérer une ligne avec une ref produit associé avec UNE SEULE COULEUR et ses informations, sur une autre feuille appelée "TOTAL".

Exemple : sur une ligne = ref produit 0001 / code blanc

sur une autre ligne = ref produit 0001 / code gris

Sachant que les données dans "BASE" peuvent être modifiées, supprimées et ajoutées (nb de ligne variable, nb de couleurs pour une référence variable) , la feuille "TOTAL" doit être actualisée avec une macro.

J'ai écrit des formules en fonction de, <si la cellule de la colonne "code blanc" alors " " sinon "valeur cellule">, avec une feuille pour chaque couleur (pour l'instant 8 couleurs). Pour regrouper les lignes non vides, j'ai créer une macro qui sélectionne que les lignes non vides, qui les copie dans la feuille total et qui les tri selon de A à Z selon leur code couleur mais lorsque j'ajoute une couleur ou une reference, l'actualisation ne se fait pas correctement.

Je pense qu'il y a une solution plus simple à cette méthode mais je ne sais pas laquelle

Merci d'avance pour vos idées et solutions !

6essai.xlsm (249.36 Ko)

Bonjour,

A essayer:

Cdlt

Bonjour Arturo83,

Merci pour l'aide

Cependant, les codes émis dans les feuilles par couleur ne sont pas les codes des couleurs chaque couleur à son propre code, comment l'on peut changer ça ?

est-il possible de mettre ces données que dans une feuille ?

Cdlt

Bonjour,

Voilà avec tout sur une seule feuille.

Cdlt

Yes, c'est super merci !

Pour le renvoie des cases des codes couleurs, j'ai juste modifier "f2.Cells(Lig_f2, "A") = f1.Cells(j, "B") de

If f1.Cells(j, Col) <> "" Then
f2.Cells(Lig_f2, "A") = f1.Cells(j, Col)
f2.Cells(Lig_f2, "B") = f1.Cells(j, "B")
f2.Cells(Lig_f2, "C") = f1.Cells(2, Col)
Rechercher des sujets similaires à "nouvelle ligne vide"