Ecriture macro avec incrémentation de ligne
Résolu
Edaine
Messages postés
62
Date d'inscription
Statut
Membre
Dernière intervention
-
Christof422 Messages postés 871 Date d'inscription Statut Membre Dernière intervention -
Christof422 Messages postés 871 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je vais essayer d'être le plus explicite possibel !
J'ai commencé une macro,
je me suis aidée de l'enregistreur,
Je voudrai que ma macro me permette de copier coller une parte de feuille sur une autre,
C'est à dire que quand j'appuie sur un bouton ou que je déclenche ma macro, elle me colle cette partie de feuille A à partir de la cellule A1 de la feuille B, et qu'ensuite si je redéclenche plus tard cette macro, qu'elle copie en A35..
J'avais commencé par définir quelques variables mais je fais des erreurs de "syntaxtes" et autre, comme je démarre vba.. Du coup j'essaie de m'aider du code suivant pour écrire mais je ne m'en sors pas;
Si vous aviez des conseils de rédaction ou autre, celà m'aiderai grandement !
Merci d'avance,
Je vais essayer d'être le plus explicite possibel !
J'ai commencé une macro,
je me suis aidée de l'enregistreur,
Je voudrai que ma macro me permette de copier coller une parte de feuille sur une autre,
C'est à dire que quand j'appuie sur un bouton ou que je déclenche ma macro, elle me colle cette partie de feuille A à partir de la cellule A1 de la feuille B, et qu'ensuite si je redéclenche plus tard cette macro, qu'elle copie en A35..
J'avais commencé par définir quelques variables mais je fais des erreurs de "syntaxtes" et autre, comme je démarre vba.. Du coup j'essaie de m'aider du code suivant pour écrire mais je ne m'en sors pas;
Sub FeuillePalette2() Dim LignFeuille As Long Dim FeExtra As Worksheet Dim FeType As Worksheet Dim FePalette As Worksheet Set FeExtra = ThisWorkbook.Sheets("Extraction cia flu") Set FeType = ThisWorkbook.Sheets("Feuille Type") Set FePalette = ThisWorkbook.Sheets("Palettes contrôlées") FeType.Range("A1:F39").Copy FePalette.Range("A1").Select ActiveSheet.Paste Sheets("Palettes contrôlées").Select ActiveWindow.ScrollRow = 10 Range("A39").Select ActiveSheet.Paste ActiveWindow.ScrollRow = 11 ActiveWindow.ScrollRow = 18 ActiveWindow.ScrollRow = 21 ActiveWindow.ScrollRow = 22 ActiveWindow.ScrollRow = 23 ActiveWindow.ScrollRow = 24 ActiveWindow.ScrollRow = 23 ActiveWindow.ScrollRow = 18 ActiveWindow.ScrollRow = 17 ActiveWindow.ScrollRow = 16 ActiveWindow.ScrollRow = 15 ActiveWindow.ScrollRow = 14 ActiveWindow.ScrollRow = 13 ActiveWindow.ScrollRow = 12 ActiveWindow.ScrollRow = 11 ActiveWindow.ScrollRow = 10 ActiveWindow.ScrollRow = 9 ActiveWindow.ScrollRow = 8 ActiveWindow.ScrollRow = 7 ActiveWindow.ScrollRow = 6 ActiveWindow.ScrollRow = 5 ActiveWindow.ScrollRow = 4 ActiveWindow.ScrollRow = 3 Sheets("Feuille Type").Select Range("B11:E29").Select Range("E29").Activate Application.CutCopyMode = False Selection.ClearContents ActiveWindow.ScrollRow = 9 ActiveWindow.ScrollRow = 8 ActiveWindow.ScrollRow = 7 ActiveWindow.ScrollRow = 6 ActiveWindow.ScrollRow = 5 ActiveWindow.ScrollRow = 4 ActiveWindow.ScrollRow = 3 ActiveWindow.ScrollRow = 2 ActiveWindow.ScrollRow = 1 Range("D3").Select Selection.ClearContents Range("C6").Select Selection.ClearContents Range("E8").Select Selection.ClearContents End Sub
Si vous aviez des conseils de rédaction ou autre, celà m'aiderai grandement !
Merci d'avance,
A voir également:
- Ecriture macro avec incrémentation de ligne
- Partage de photos en ligne - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Écriture facebook - Guide
- Ecriture en gras - Guide
- Mètre en ligne - Guide
8 réponses
Ces 3 lignes doivent suffire
Avec ca tu devrai pouvoir arriver a tes fins.
Le premier pas vers la solution est la recherche. Notre ami Google connaît sûrement la solution...
FeType.Range("A1:F39").Copy 'copie les cellule de A1 à F39 de la feuille Fetype FePalette.Range("A1").Select 'selectionne la cellule A1 de la feuille Fepalette ActiveSheet.Paste 'Colle la copie sur la feuille Fepalette (feuille active)
Avec ca tu devrai pouvoir arriver a tes fins.
Le premier pas vers la solution est la recherche. Notre ami Google connaît sûrement la solution...
Bon j'ai essayé,
Ca fonctionne bien, mais je n'arrive pas à intégrer mon incrémentation...
J'ai essayé plein de trucs différents.
J'ai tenté avec un If mais je ne sais pas trop comment faire.
:s
J'étais partie sur un truc du style :
Si la cellule C3 n'est pas vide alors, il faut coller à LignFeuille + 39,
J'ai essayé de différente façon, mais je n'ai toujours pas saisi la logique du vba ... Dès que je colle, ça colle à l'infini à partir de LignFeuille + 39 ...
Comment faire pour dire " Coller une seule fois " ?
Ca fonctionne bien, mais je n'arrive pas à intégrer mon incrémentation...
J'ai essayé plein de trucs différents.
J'ai tenté avec un If mais je ne sais pas trop comment faire.
:s
J'étais partie sur un truc du style :
Si la cellule C3 n'est pas vide alors, il faut coller à LignFeuille + 39,
J'ai essayé de différente façon, mais je n'ai toujours pas saisi la logique du vba ... Dès que je colle, ça colle à l'infini à partir de LignFeuille + 39 ...
Comment faire pour dire " Coller une seule fois " ?
Explique précisement ce que tu veux faire. Parce que je ne comprend pas tout.
J'essayerai de te filé le code après.
J'essayerai de te filé le code après.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai ma plage A1:A39 sur FeType qui est tjs la même et qu eje modifie a l'aide d'une autre macro, du coup j'aimerai coller cette plage sur FePalette, mais si j'ai déjà une plage coller sur cette FePalette, j'aimerai qu'il la colle juste en dessous .. :s
Du coup j'ai tenté en mettant LignFeuille, pour pouvoir ensuite mettre LignFeuille = LignFeuille + 39.
Voilà j'espère avoir été précise ..
Merci beaucoup !
Du coup j'ai tenté en mettant LignFeuille, pour pouvoir ensuite mettre LignFeuille = LignFeuille + 39.
Voilà j'espère avoir été précise ..
Merci beaucoup !
Worksheets("Fetype").Range("A1", "A39").Copy Worksheets("Fepalette").Select If Cells(39, 1).Value = "" Then Range("A1").Select ActiveSheet.Paste Else Range("A40").Select ActiveSheet.Paste End If
En faite j'étais partie sur un truc dans ce style là,
FeType.Range("A1:F39").Copy
FePalette.Select
LignFeuille = 1
If Cells(LignFeuille, 3).Value = "" Then
Range("A1").Select
ActiveSheet.Paste
LignFeuille = LignFeuille + 39
Else:
Range("A" & LignFeuille).Select
ActiveSheet.Paste
End If
Pour pouvoir coller autant de fois que je veux sans me soucier de la destination. Sauf qu'évidemment, mon code merdouille :p Et que je ne sais pas ce que je dois rajouter ^^'
FeType.Range("A1:F39").Copy
FePalette.Select
LignFeuille = 1
If Cells(LignFeuille, 3).Value = "" Then
Range("A1").Select
ActiveSheet.Paste
LignFeuille = LignFeuille + 39
Else:
Range("A" & LignFeuille).Select
ActiveSheet.Paste
End If
Pour pouvoir coller autant de fois que je veux sans me soucier de la destination. Sauf qu'évidemment, mon code merdouille :p Et que je ne sais pas ce que je dois rajouter ^^'
voila avec cette maccro tu peux copier autant de fois que tu veux, cela se met a la suite avec un espace entre chaque.
Worksheets("Fetype").Range("A1", "A39").Copy Worksheets("Fepalette").Select If Cells(39, 1).Value = "" Then Range("A1").Select ActiveSheet.Paste Else For i = 40 To 65500 Step 40 If Cells(i, 1).Value = "" Then Range("A" & i).Select ActiveSheet.Paste Exit Sub End If Next i