copier coller plage de données actives

stephane.quinquis

XLDnaute Junior
Bonjour,
je voulais savoir s'il était possible avec une macro de copier coller une plage de données actives d'un classeur vers un autre.

Je m'explique:

Si quelqu'un sélectionne la plage de données (A8 jusqu'à D9) et clique sur un bouton, la macro copie ces données et les colle dans une autre feuille

Le problème est que la plage de données sélectionnés n'est pas toujours identique. Le nombre de colonnes sélectionnés sera toujours le même(de A à D)
Par contre, le nombre de lignes ne sera jamais identique, ne commencera pas toujours à la ligne 8.

Merci
 

Pièces jointes

  • Test.xls
    19 KB · Affichages: 91
  • Test.xls
    19 KB · Affichages: 91
  • Test.xls
    19 KB · Affichages: 92

Dull

XLDnaute Barbatruc
Re : copier coller plage de données actives

Salut Steph29, le Forum

pas sur d'avoir compris mais essaye ce code

Code:
Sub Ellipse1_Cliquer()
Sheets("feuil2").Range("A8:D" & Feuil1.Range("A" & Application.Rows.Count).End(xlUp).Row).ClearContents
Selection.Copy Destination:=Sheets("Feuil2").Range("A8")
End Sub
si les données sont à copier à la suite les unes des autres opte pour ce code

Code:
Sub Ellipse1_Cliquer()
Selection.Copy Destination:=Feuil2.Range("A65535").End(xlUp).Offset(1, 0)
End Sub
Sélectionne ta plage de données et clique sur l'ellipse

cela devrait répondre à ton problème

Bonne Journée
 

stephane.quinquis

XLDnaute Junior
Re : copier coller plage de données actives

Salut Dull, Salut Le Forum

J'ai encore une autre question. A l'heure actuelle, le copier coller se fait correctement sans souci.
J'ai deux autres souhaits mais je ne sais pas s'ils sont réalisables:
1)Le collage se fait à partir de ma cellule A2 dans ma Feuil2 et j'aimerai le faire à partir de ma cellule A8 par exemple
2)J'aimerai surligner dans ma Feuil1 en jaune les cellules qui viennent d'être copier

Merci d'avance
 

Dull

XLDnaute Barbatruc
Re : copier coller plage de données actives

Salut Stéphane, le Forum

Pour ta première question le collage se fait sur la première cellule vide en partant de A65536 (dernière cellule Excel 2003 et en remontant: Voir ton Fichier)

Une autre version avec tes recommandations et si j'ai bien compris

Code:
Sub Ellipse1_Cliquer()
Feuil1.Range("A8:D65536").Interior.ColorIndex = xlNone
With Selection
    .Copy Destination:=Feuil2.Range("A65535").End(xlUp).Offset(1, 0)
    .Interior.ColorIndex = 6
End With
End Sub
Bonne journée,
 

Pièces jointes

  • Test Stéphane.zip
    12 KB · Affichages: 80

stephane.quinquis

XLDnaute Junior
Re : copier coller plage de données actives

Merci beaucoup encore Dull!!

Je vais être chiant une dernière fois. En fait, j'aurai souhaité que mes cellules restent surlignés en jaune même après avoir désélectionner la macro.
Je remarque ici que si j'applique plusieurs fois la macro à différentes lignes, il n'y aura que les lignes qui viennent juste d'être sélectionné qui reste en jaune alors que celle qui ont déjà subi la macro apparaissent en blanc.

Merci d'avance
 

Dull

XLDnaute Barbatruc
Re : copier coller plage de données actives

Salut Stéphane, le Forum

supprime la ligne en rouge

Code:
Sub Ellipse1_Cliquer()
[COLOR=Red][B]Feuil1.Range("A8:D65536").Interior.ColorIndex = xlNone[/B][/COLOR]
With Selection
    .Copy Destination:=Feuil2.Range("A65535").End(xlUp).Offset(1, 0)
    .Interior.ColorIndex = 6
End With
End Sub
Bonne Journée
 

stephane.quinquis

XLDnaute Junior
Re : copier coller plage de données actives

Bonjour Dull,
Juste une dernière requête. Si a la place de copier coller et surligner, je veux maintenant couper coller puis supprimer la ligne que je viens de couper comment je fais??
J'ai réussi le couper coller mais je suis bloqué pour la suppression de la ligne sélectinné.
Code:
With Selection
    .Cut Destination:=Feuil6.Range("A65535").End(xlUp).Offset(1, 0)
    .'Ajout d'info pour supprimer la ligne concerné
End With
End Sub

Merci d'avance
 

Dull

XLDnaute Barbatruc
Re : copier coller plage de données actives

Salut Stéphane, le Forum

peut-être ça

Code:
Sub Ellipse1_Cliquer()
    With Selection
        .Cut Destination:=Feuil2.Range("A65535").End(xlUp).Offset(1, 0)
        [B].Delete[/B]
    End With
End Sub
bonne Journée
 

stephane.quinquis

XLDnaute Junior
Re : copier coller plage de données actives

Merci encore à toi Dull.
En fait, la macro n'arrivait pas à fonctionner avec le couper coller supprimer.
Je l'ai donc remplacé par un copier coller supprimer ce qui revient au même.
Code:
With Selection
    .Copy Destination:=Feuil6.Range("A65535").End(xlUp).Offset(1, 0)
    .Delete
End With
End Sub
 

stephane.quinquis

XLDnaute Junior
Re : copier coller plage de données actives

Bonjour Dull, Bonjour le Forum

J'ai une autre requête qui, je pense, va à la suite, de celle-ci.
Après avoir coller mon info dans la feuille2, je souhaite supprimer une information de ma ligne comme par exemple le N°OF.
Ci-joint un exemple.

Merci
 

Pièces jointes

  • Test.xls
    19 KB · Affichages: 75
  • Test.xls
    19 KB · Affichages: 84
  • Test.xls
    19 KB · Affichages: 82

stephane.quinquis

XLDnaute Junior
Re : copier coller plage de données actives

Bonjour Dull, Bonjour le forum

J'ai une autre requête pour ce copier coller supprimer. Je souhaite coller ma ligne que je viens de copier en haut de mon tableau. Afin de ne pas écraser des données, il est donc nécessaire d'insérer une ligne en A8. J'ai pensé insérer une ligne avant la sélection mais cela ne fonctionne pas. Quelqu'un a-t-il une idée??

Code:
Sub Envoiversrefontearejeter()
'
' Envoiversrefontearejeter Macro
' Macro enregistrée le 20/04/2010 par quinquis
Feuil6.Rows("8:8").Select
    Selection.Insert Shift:=xlDown
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Selection.Interior.ColorIndex = 2
    Selection.Font.ColorIndex = 0
With Selection
    .Copy Destination:=Feuil6.Range("A8").End(xlUp).Offset(1, 0)
    .Delete

End With
End Sub

Merci
 

stephane.quinquis

XLDnaute Junior
Re : copier coller plage de données actives

Bonjourle forum,

J'ai réussi à copier mes données en début de tableau. Par contre, je souhaiterai maintenant pouvoir coller en C8 et non plus en A8.
Mais j'obtiens le message d'erreur suivant:
erreur d'éxécution1004: impossible de copier les informations car les formes de copier et de collage sont de forme et de tailles différentes....
Que puis-je faire??
Merci
Code:
Sub Envoiversrefontearejeter()
'
' Envoiversrefontearejeter Macro
' Macro enregistrée le 20/04/2010 par quinquis
    Feuil6.Select
    Rows("8:8").Select
    Selection.Insert Shift:=xlDown
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Selection.Interior.ColorIndex = 2
    Selection.Font.ColorIndex = 0
    Feuil1.Select
With Selection
    .Copy Destination:=Feuil6.Range("C8").End(xlUp).Offset(1, 0)
    .Delete
End With
Feuil6.Select
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 581
Messages
2 089 917
Membres
104 306
dernier inscrit
Bouhlal