copier-coller toutes les X lignes.

Malkav

XLDnaute Nouveau
Salut à tous,

Je viens vous poser une petite question car je bloque un petit peu.

Mon but est récupérer les matricules, nom et prénom d'un fichier d'extraction, onglet "extract" et de les coller dans un autre onglet "tableau recap". (voir excel joint)

Je ne vois pas trop le moyen compte tenu de mes connaissances. il me faudrait juste la manip de copier coller, car je pense être capable de faire la boucle...

auriez vous une idée???

Merci beaucoup la communauté :)
 

Pièces jointes

  • test.xlsx
    11.8 KB · Affichages: 41
  • test.xlsx
    11.8 KB · Affichages: 41
  • test.xlsx
    11.8 KB · Affichages: 46

don_pets

XLDnaute Occasionnel
Re : copier-coller toutes les X lignes.

Bonjour,

si ta demande est juste de copier les données de "extract" et de les coller à la suite de l'onglet tableau recap, alors je ferais cela :

Code:
sheets("extract").activate
sheets("extract").range("a1").select
Selection.CurrentRegion.Select
Selection.Copy

sheets("tableau recap").Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
 

Malkav

XLDnaute Nouveau
Re : copier-coller toutes les X lignes.

En fait le but est juste de récupérer une seule fois le matricule, nom, et prénom et le copier dans "tableau recap".

J'ai 5 lignes TOTO dans l'onglet "extract" et je veux juste le coller une fois dans "taleau recap", et faire pareil pour chaque personne...

Et le code ne marche pas, j'ai un debug sur la ligne
"sheets("tableau recap").Range("A65536").End(xlUp).Offset(1, 0).Select"
 

don_pets

XLDnaute Occasionnel
Re : copier-coller toutes les X lignes.

yep

pour le bug, normal j'ai oublié une ligne il faut réactiver l'onglet où tu vas coller les données :
Code:
Sheets("extract").Activate
Sheets("extract").Range("a1").Select
Selection.CurrentRegion.Select
Selection.Copy

Sheets("tableau recap").Activate
Sheets("tableau recap").Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
 

JBARBE

XLDnaute Barbatruc
Re : copier-coller toutes les X lignes.

Bonjour à tous,

Peut-être ceci

bonne journée
 

Pièces jointes

  • test1.xls
    65.5 KB · Affichages: 36
  • test1.xls
    65.5 KB · Affichages: 42
  • test1.xls
    65.5 KB · Affichages: 41
Dernière édition:

Malkav

XLDnaute Nouveau
Re : copier-coller toutes les X lignes.

En fait ton code copie l’intégralité de la liste sur le premier onglet "extract",dans mon cas j'ai juste besoin des 3 premières colonnes et uniquement d'une ligne par "entité" (entité = matricule, nom, prénom).

copier les 3 premières colonne de la ligne 2 de "extract", la coller sur la ligne 2 de "tableau recap"
copier les 3 premières colonne de la ligne 7 de "extract", la coller sur la ligne 3 de "tableau recap"
copier les 3 premières colonne de la ligne 12 de "extract", la coller sur la ligne 4 de "tableau recap"

en sachant que le nombre de ligne a "sauter" est tjs le même.
 

don_pets

XLDnaute Occasionnel
Re : copier-coller toutes les X lignes.

Un poil plus long, mais bon, tant que la solution est là, soyons pragmatique !

Code:
    ' Onglet tempo
Set NewFeuil = Worksheets.Add(Sheets(1))
NewFeuil.Name = "temp"

Sheets("extract").Activate
Sheets("extract").Range("a1").Select
Selection.CurrentRegion.Select
Selection.Copy

Sheets("temp").Activate
Sheets("temp").Range("A65536").End(xlUp).Offset(0, 0).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

    ' Shooter les doublons
Sheets("temp").Activate
Sheets("temp").Range("a1").Select
Selection.CurrentRegion.Select
Selection.RemoveDuplicates Columns:=1, Header:=xlYes

    ' Coller les résultats
Sheets("temp").Activate
ActiveSheet.Rows("1:1").Select
Selection.Delete Shift:=xlUp

Sheets("temp").Activate
Sheets("temp").Range("a1").Select
Selection.CurrentRegion.Select
Selection.Copy

Sheets("tableau recap").Activate
Sheets("tableau recap").Range("A65536").End(xlUp).Offset(0, 0).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

    ' Supprimer onglet temp
Application.DisplayAlerts = False
Worksheets("temp").Delete
Application.DisplayAlerts = True

Cela correspond-il mieux à ce que tu veux ?
 

Malkav

XLDnaute Nouveau
Re : copier-coller toutes les X lignes.

Un poil plus long, mais bon, tant que la solution est là, soyons pragmatique !

Code:
    ' Onglet tempo
Set NewFeuil = Worksheets.Add(Sheets(1))
NewFeuil.Name = "temp"

Sheets("extract").Activate
Sheets("extract").Range("a1").Select
Selection.CurrentRegion.Select
Selection.Copy

Sheets("temp").Activate
Sheets("temp").Range("A65536").End(xlUp).Offset(0, 0).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

    ' Shooter les doublons
Sheets("temp").Activate
Sheets("temp").Range("a1").Select
Selection.CurrentRegion.Select
Selection.RemoveDuplicates Columns:=1, Header:=xlYes

    ' Coller les résultats
Sheets("temp").Activate
ActiveSheet.Rows("1:1").Select
Selection.Delete Shift:=xlUp

Sheets("temp").Activate
Sheets("temp").Range("a1").Select
Selection.CurrentRegion.Select
Selection.Copy

Sheets("tableau recap").Activate
Sheets("tableau recap").Range("A65536").End(xlUp).Offset(0, 0).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

    ' Supprimer onglet temp
Application.DisplayAlerts = False
Worksheets("temp").Delete
Application.DisplayAlerts = True

Cela correspond-il mieux à ce que tu veux ?


Long mais efficace, je vais tester ca pour passer a la phase deux de mon casse tête :)
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : copier-coller toutes les X lignes.

Re,

ou avec ceci pour effacer les données de la feuille recap avant de coller les données de la feuille 1

Code:
Sub Macro1()
Application.ScreenUpdating = False
Sheets("tableau recap").Range("A2:C" & Range("A65535").End(xlUp).Row).ClearContents
    Range("A2:C" & Range("A65535").End(xlUp).Row).Copy
    Sheets("tableau recap").Select
    Range("A2").Select
    ActiveSheet.Paste
    ActiveSheet.Range("$A$1:$C$" & Range("A65535").End(xlUp).Row).RemoveDuplicates Columns:=1, Header:=xlYes
    [A1].Select
Application.ScreenUpdating = True
End Sub

à+
Philippe
 

Malkav

XLDnaute Nouveau
Re : copier-coller toutes les X lignes.

Re,

ou avec ceci pour effacer les données de la feuille recap avant de coller les données de la feuille 1

Code:
Sub Macro1()
Application.ScreenUpdating = False
Sheets("tableau recap").Range("A2:C" & Range("A65535").End(xlUp).Row).ClearContents
    Range("A2:C" & Range("A65535").End(xlUp).Row).Copy
    Sheets("tableau recap").Select
    Range("A2").Select
    ActiveSheet.Paste
    ActiveSheet.Range("$A$1:$C$" & Range("A65535").End(xlUp).Row).RemoveDuplicates Columns:=1, Header:=xlYes
    [A1].Select
Application.ScreenUpdating = True
End Sub

à+
Philippe

Ah ouais quand même... j'ai vraiment hâte de m’améliorer... ce donne envie de coder comme ca...

Merci Philippe!
 

Discussions similaires

Statistiques des forums

Discussions
312 609
Messages
2 090 197
Membres
104 449
dernier inscrit
Miguel937