Prob VBA creation et update de feuilles

  • Initiateur de la discussion Initiateur de la discussion Grek
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Grek

XLDnaute Nouveau
Je suis en train d'ecrire une macro afin de creer automatiquement des feuilles sur base d'une liste (voir fichier ci-joint).
Pas de problème pour creer les feuilles (quoique je ne suis pas certain d utiliser la methode la + simple).
Par contre le problème se pose lorsque je veux copier les données en colonnes D et E dans la feuille appropriée.

Je ne peux pas faire un Range(Selection, Selection.End(xlDown)).Select puis coller dans la feuille appropriée car les cellules sont unifiées.
De plus le Selection.End(xlDown) n'est pas la methode la plus appropriée et ne fonctionnera pas si je n'ai qu'une valeur en D.

Merci d'avance pour votre aide,

Gregory
 

Pièces jointes

Re : Prob VBA creation et update de feuilles

Super, c'est exactement ce que je cherchais àf aire.
Un grand merci!

Pourrais-tu juste me commenter les lignes de code pour m'aider à les assimilers ?
Thx!

Code:
Application.ScreenUpdating = False
n = 5
While Sheets("Main").Range("C" & n) <> "END"
  If Sheets("Main").Range("C" & n) <> "" Then
y = 5
 Sheets("Template").Copy After:=Sheets(2)
 ActiveSheet.Name = Left(Sheets("Main").Range("C" & n), 31)
 x = 0
   While Sheets("Main").Range("D" & n + x) <> ""
      ActiveSheet.Range("Y" & y + x) = Sheets("Main").Range("D" & n + x)
      ActiveSheet.Range("AC" & y + x) = Sheets("Main").Range("E" & n + x)
      x = x + 1
   Wend
 End If
 n = n + 1
 y = 5
Wend
Application.ScreenUpdating = True
 
Re : Prob VBA creation et update de feuilles

Re

Code:
' pour figer l'ecran
Application.ScreenUpdating = False
'initialisation n=ligne de la colonne C ou debuter le test
n = 5
' test: feuille Main, colonne c ,ligne n, n'est pas END
While Sheets("Main").Range("C" & n) <> "END"
' teste non vide
  If Sheets("Main").Range("C" & n) <> "" Then
'initialisation ligne ou debuter l'inscription dans la nouvelle feuille
y = 5
'création de la nouvelle feuille par copie de Template
 Sheets("Template").Copy After:=Sheets(2)
'On nomme la nouvelle feuille
 ActiveSheet.Name = Left(Sheets("Main").Range("C" & n), 31)
'initialisation de l'increment pour le test colonne D
 x = 0
'test feuille Main colonne D ligne n+x
   While Sheets("Main").Range("D" & n + x) <> ""
'report des colonnes D et E
      ActiveSheet.Range("Y" & y + x) = Sheets("Main").Range("D" & n + x)
      ActiveSheet.Range("AC" & y + x) = Sheets("Main").Range("E" & n + x)
' increment de la ligne pour test colonne D
      x = x + 1
   Wend
 End If
' increment pour test de la colonne C
 n = n + 1
' réinitialisation de la ligne d'ecriture sur nouvelle feuille
 y = 5
Wend
' libération de l'ecran
Application.ScreenUpdating = True
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
903
Réponses
7
Affichages
340
Retour