Macro - copie d'un onglet en fonction d'une cellule
Bonjour à tous,
Tout d'abord, je tiens à prévenir que je suis "très" novice en VBA.
J'ai déjà crée quelques macro (beaucoup grâce à ce forum je dois l'avouer).
J'aurai besoin d'aide concernant une succession d'actions sur excel que j'aimerai transformer en macro.
Dans mon onglet Feuille 1, j'ai une liste de code sur la colonne A (environ 200 codes).
Dans mon onglet Feuille 2, c'est toute une feuille avec des cellules remplie de formule dépendant de ma cellule A4 qui correspond aux codes de la Feuille 1.
Mon objectif est que la macro aille chercher dans ma feuille 1 le code de la cellule A1 pour le mettre dans la cellule A4 de mon onglet feuille 2.
Ensuite je voudrais que la macro prenne la feuille 2 pour la coller dans un autre fichier.
Et après qu'il fasse la même chose avec le code de la cellule A2 de la feuille 1 (et ainsi de suite code de la cellule A3, puis A4 ...)
D'avance je vous remercie pour votre aide.
Et j'espère avoir été assez clair dans mes explications.
Vous trouverez ci-joint un exemple de ma feuille de départ.
Bonjour slefebvre86
Même très novice en VBA, cela ne doit pas t'empêcher de commencer un bout de code
Perso, ce que je fais parfois :
1) je lance l'enregistreur de macro (image ci-dessous)
2) j'effectue les différentes actions dont j'ai besoin, puis j'arrête l'enregistreur
3) tu obtiens un code à épurer et retravailler
Sinon voici le code à mettre dans un module
Sub BrunoM45Code()
Dim DLig As Long, Lig As Long
Dim sPath As String, Code As String
' Définir une variable objet pour la feuille de destination
Dim ShtD As Worksheet
' Définir la feuille de destination
Set ShtD = Sheets("Feuil2")
' Définir le chemin d'accès = celui de ce classeur
sPath = ThisWorkbook.Path & "\"
' Avec la feuille source = feuil1
With Sheets("Feuil1")
' Récupérer le numéro de la dernière ligne du tableau
DLig = .Range("A" & Rows.Count).End(xlUp).Row
' Pour chaque ligne
For Lig = 2 To DLig
' Inscrire les valeurs dans la feuille de destination
Code = .Range("A" & Lig).Value
ShtD.Range("A4").Value = Code
ShtD.Range("A7").Value = .Range("B" & Lig).Value
ShtD.Range("A10").Value = .Range("C" & Lig).Value
' Copier la feuille dans un nouveau classeur
ShtD.Copy
' enregistrer le classeur actif et le fermer
With ActiveWorkbook
.SaveAs sPath & "Code_" & Code & ".xlsx"
.Close
End With
Next Lig
End With
End SubA+
Tu es un magicien.
Merci infiniment