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.

53exemple-vba.xlsx (11.15 Ko)

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 Sub

A+

screenshot125

Tu es un magicien.

Merci infiniment

Rechercher des sujets similaires à "macro copie onglet fonction"