Bonjour à tous,
Étant débutant en VBA et après quelques recherches sur le forum, je viens à demander votre aide concernant la macro suivante (je vais essayer d'être le plus explicite possible) :
Le but de mon fichier (ci-joint pour plus de facilités) est de sortir une feuille d'inventaire pour chaque catégorie (1 / 2 / 3).
Voici les différentes étapes que je souhaiterais que la macro exécute :
Merci d'avance pour votre aide
Cdt
Étant débutant en VBA et après quelques recherches sur le forum, je viens à demander votre aide concernant la macro suivante (je vais essayer d'être le plus explicite possible) :
Le but de mon fichier (ci-joint pour plus de facilités) est de sortir une feuille d'inventaire pour chaque catégorie (1 / 2 / 3).
Voici les différentes étapes que je souhaiterais que la macro exécute :
- Aller dans "Feuill1" et rechercher à partir de la colonne D le n° de catégorie de l'article
- Suivant le n° de catégorie, copier la référence + le libellé et coller dans "Feuill2" dans le bon tableau
- Puis passer à la ligne suivante jusqu'à que la cellule de la colonne D soit vide
- Si modification des données de la "Feuill1", j'aimerai que toutes les lignes des 3 tableaux de la "Feuill2" reviennent vierges pour mise à jour complète
VB:
Sub test()
'Sélection de la feuille Feull2
Sheets("Feuill2").Select
'Suppression des données tableaux pour mise à jour
Range("B4:D80").Select
ActiveWindow.SmallScroll Down:=-48
Range("B4:D80,G4:I80").Select
Range("G4").Activate
ActiveWindow.SmallScroll Down:=-72
Range("B4:D80,G4:I80,K4:M80").Select
Range("K4").Activate
Selection.ClearContents
'Sélection de la feuille Feull1
Sheets("Feuill1").Select
Range("D2").Select
'Vérification du critère de sélection "1"
Do While ActiveCell.Value <> "" 'Boucle tant qu'on ne tombe pas sur une cellule vide
If ActiveCell.Value = "1" Then
ligne = ActiveCell.Row 'on stocke le numéro de ligne
'copie de la ligne (colonne A à B)
Range(Cells(ligne, 1), Cells(ligne, 2)).Copy
Sheets("Feuill2").Activate
Range("B3").Select
'cas numero 1 : aucune ligne n'a déjà été exportée
If ActiveCell.Offset(1, 0).Value = "" Then
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Sheets("Feuill1").Select
ActiveCell.Offset(1, 0).Select
'cas numero 2 : des lignes ont déjà été exportées
Else
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Sheets("Feuill1").Select
ActiveCell.Offset(1, 0).Select
End If
'pas de "1" dans la cellule
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
Merci d'avance pour votre aide
Cdt