Re,
Non plutôt un cycliste ^^
En règle général, si on a l'occasion d'éviter la macro on évite, moins lourd, souvent plus simple et gérable par tout le monde.
Pour le problème d'avoir la source sur le même fichier, on peut toujours masquer la feuille en question et juste avoir les 3 autres.
C'est aussi possible de passer avec des formules, mais il faut une légère modification du fichier source (je ne sais pas si c'est possible ?).
Ci joint un essai avec PQ, un autre avec formule et un dernier avec macro mais uniquement pour BD (pas eu la force de toutes les faire), il faudra l'adapter pour les autres.
En bref, les + et les - :
Avec PQ: pas de modif du fichier source mais demande d'actualiser après chaque modification du fichier source et demande de refaire une connexion pour chaque nouveau type de livre (fiction, manga, ...)
Avec les formules: changement en automatique, rapide et adaptable rapidement pour les nouveaux types de livres mais nécessite la modification du fichier de base.
Avec une macro: pas de modification importante du fichier source mais fichier plus lourd, plus difficile à adapter et demande d'adapter la macro pour les nouveaux types de livres.
Sub testBD()
Dim c As Range
Dim var As Long
Dim firstAddress As String
Windows("livres-fichier-source.xlsm").Activate
With Worksheets("feuil1").Range("E3:E10")
Set c = .Find("BD", LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Rows(c.Row).Copy
Windows("Classeur1.xlsm").Activate
Worksheets("BD macro").Select
For var = 2 To 100
If Cells(var, 1) = "" Then
Rows(var).Select
ActiveCell.PasteSpecial Paste:=xlPasteValues
Exit For
End If
Next
Windows("livres-fichier-source.xlsm").Activate
c.Value = " BD"
Set c = .FindNext(c)
Loop Until c Is Nothing
End If
End With
Windows("Classeur1.xlsm").Activate
End Sub
(A noter que c'est pas le type de macro que j'effectue souvent donc elle n'est pas très belle et pas super fonctionnelle, si un pro passe dans le coin et qu'il est motivé, il te sortira surement bien mieux. En tout cas je ne pourrait pas aller plus loin )