Ecriture macro avec incrémentation de ligne

Résolu/Fermé
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012 - 1 juil. 2011 à 08:48
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 - 1 juil. 2011 à 11:43
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;


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:

8 réponses

Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
Modifié par Christof422 le 1/07/2011 à 09:35
Ces 3 lignes doivent suffire

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...
0
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012
1 juil. 2011 à 09:24
Nice,

Je vais tenter :D

Merci !
0
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012
1 juil. 2011 à 09:48
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 " ?
0
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
1 juil. 2011 à 10:00
Explique précisement ce que tu veux faire. Parce que je ne comprend pas tout.

J'essayerai de te filé le code après.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012
1 juil. 2011 à 10:04
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 !
0
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
1 juil. 2011 à 10:06
oui, c'est bon :).

Je te regarde ca.
0
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
1 juil. 2011 à 10:24
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
0
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012
1 juil. 2011 à 10:31
Ca fait un truc bizarre,

Ca copie que ma colonne A même si je modifie la plage de donnée..

Et je ne peux vraiment pas insérer une variable pour selectionner ma cellule de "collage" ? De façon à ce qu'il cherche lui même ou coller.
0
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012
1 juil. 2011 à 10:32
Oh j'ai vu xD pour la colonne A :p
0
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012
1 juil. 2011 à 10:32
J'en deviens stupide .. Désolée ;)
0
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012
1 juil. 2011 à 10:36
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 ^^'
0
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
1 juil. 2011 à 11:02
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
0
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012
1 juil. 2011 à 11:10
Ca marche ! Merci beaucoup !

Par contre est-ce que tu saurai me dire, pourquoi le logo que j'ai sur la FeType se copie de 4 à 6 fois au même endroit sur ma FePalette ? x_O

C'est super bizarre :s

Est-ce que tu aurais une diée ? ^^'
0
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012
1 juil. 2011 à 11:10
idée*
0
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
1 juil. 2011 à 11:14
Il est situé dans quelle cellule ce logo?
0
Edaine Messages postés 62 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 23 avril 2012
1 juil. 2011 à 11:16
Euh il est "étalé" de B2 à B3 en gros
0
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
1 juil. 2011 à 11:21
Ben in doit dépasser sur les cases A2 et A3 donc il doit être copié avec.

Déplace le plus vers la droite
0