Correction sur un code

Bonjour , essayant de progresser en vba , j'ai réalisé le code suivant , il marche , sauf que la premiere ligne obtenue est copiée

deux fois ,..... je sais le code n'est pas tres esthétique , on peut faire mieux , sans vouloir le modifier , qu'est ce qui fait que j'ai une double recopie de ma première ligne du tableau Feuil2 ? les autres lignes obtenues s'ecrivant elles , une seule fois

vous remerciant pour vos remarques ou suggetions

Sub mettre_en_ligne_cellule_eparpillées()
'
'
'
'   Sheets("Feuil1").Select
    Range("E11").Select
    Selection.Copy
    Sheets("Feuil2").Select
    Range("H9").Select
    ActiveSheet.Paste
    Sheets("Feuil2").Range("H" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
  Application.CutCopyMode = False

    Sheets("Feuil1").Select
    Range("E12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select
    Range("I9").Select
    ActiveSheet.Paste
    Sheets("Feuil2").Range("I" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
  Application.CutCopyMode = False

    Sheets("Feuil1").Select
    Range("E13").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select
    Range("J9").Select
    ActiveSheet.Paste
    Sheets("Feuil2").Range("J" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
  Application.CutCopyMode = False

    Sheets("Feuil1").Select
    Range("E14").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select
    Range("K9").Select
    ActiveSheet.Paste
    Sheets("Feuil2").Range("K" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
  Application.CutCopyMode = False

    Sheets("Feuil1").Select
    Range("E15").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select
    Range("M9").Select
    ActiveSheet.Paste
    Sheets("Feuil2").Range("M" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
  Application.CutCopyMode = False

    Sheets("Feuil1").Select
    Range("D22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select
    Range("N9").Select
    ActiveSheet.Paste
    Sheets("Feuil2").Range("N" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
  Application.CutCopyMode = False

    Sheets("Feuil1").Select
    Range("D23").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select
    Range("O9").Select
    ActiveSheet.Paste
    Sheets("Feuil2").Range("O" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
  Application.CutCopyMode = False
End Sub

Bonjour

C'est normal tu copies deux fois la donnée

1ère fois

ActiveSheet.Paste

2ème fois

Sheets("Feuil2").Range("H" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

Merci !!!

j'ai retiré l'instruction

ActiveSheet.Paste

du code et du coup ca va mieux , merci à toi !!

Merci encor

Bonjour,

Tu pourrais simplifier les recopies comme ceci :

With Sheets("Feuil1")
   .Range("E11:E15").Copy
    Sheets("Feuil2").Range("H" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End With
Application.CutCopyMode = False

ou si recopie uniquement vers la ligne 9

With Sheets("Feuil1")
   .Range("E11:E15").Copy
    Sheets("Feuil2").Range("H9").PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End With
Application.CutCopyMode = False

Amcialement

re....... je me posais une question simple d'apparence

le code precedent me permet de remplir des lignes d'un tableau d'une feuille donnée par selection de cellules prises sur une autre feuille , ce code etant rattaché à un bouton.

Si je decide de créer un bouton supplementaire affecté de la meme macro commande , comment faire pour qu' a chaque fois que je clique sur l'un des deux boutons les lignes puissent se remplir à la suite , j'ai eu beau chercher !!! je ne trouve pas l'astuce

s'il y a des idées ? parce que si je clique admettons sur le bouton 1 celui ci commence l'ecriture à la première ligne

si je clique sur le second celui ci aussi commence l'ecriture à la première ligne .

enfin ... merci pour toute idée , je ne souhaite pas de solution , mais une idée

Re,

Je ne te suis pas... pourquoi mettre deux boutons pour faire la même chose ?

A te relire

NB : comme tu continues sur ce fil, clique sur le V devenu rouge ( à coté du bouton Editer) afin de montrer que le fil n'est pas terminé.

re.. si cela à une utilité puisque le premier bouton recupere des données d'une page et le second d'une autre page

quand je dis meme macro , (c'est dans la morphologie ) chaque clique sur l'un des bouton remplit le meme tableau

Re,

Les boutons se trouvent sur quelle page ?

....les boutons se trouvent sur la page 1 , mais est ce que cela a de l'importance puisqu'on peut les placer sur n'importe quelle page

du moment qu'ils sont affectés de la bonne macro?

re,

....les boutons se trouvent sur la page 1 , mais est ce que cela a de l'importance puisqu'on peut les placer sur n'importe quelle page du moment qu'ils sont affectés de la bonne macro?

Oui cela a de l'importance.

Pour ton bouton 1 sur ta feuille 1, ton code copie de la feuille 1 et copie vers la feuille 2

Pour ton bouton 2 sur ta feuille ??, il copie vers quelle feuille ?

Ou alors tes boutons sont sur une feuille X :

  • le bouton 1 copie de feuille 1 vers feuille 2
  • le bouton 2 copie de ? vers ?

A te relire

bonjour

le bouton 1 est sur la feuille 1 et permet de remplir un tableau en feuille 3 ( par section de cellules eparpillées sur la feuille 1 puis remises en ligne dans le tableau en feuille 3).

le bouton 2 est sur la feuille 2 et permet de remplir le meme tableau en feuille 3 ( toujours par selection de cellules eparpillées en feuille 2 puis remises en ligne sur le meme tableau en feuille 3)

le tout est que lorsque j'utilise l'un ou l'autre bouton que les lignes puissent se succeder dans le meme tableau en feuille 3

c'est là la difficulté

voila ! merci pour vos conseils

Re,

Voir ton fichier serait l'idéal. Sinon essaie comme ceci :

Sub test()
With ActiveSheet
   .Range("E11:E15").Copy
    Sheets("Feuil3").Range("H" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    .Range ("D22:D23")
    Sheets("Feuil3").Range("N" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End With
Application.CutCopyMode = False
End Sub

Attribue cette macro à chacun de tes boutons.

Si ok clique sur le V vert pour cloturer le fil.

Amicalement

Merci !! ca marche !! encor merci pour avoir suivit ce post , bon week end

Rechercher des sujets similaires à "correction code"