Selection de lignes vba-excel

[Résolu/Fermé]
Signaler
-
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
-
Bonjour,

Voila mon problème, je débute avec vba, et je patauge pas mal.
J'ai un fichier excel qui possède des données sur 60000 lignes, ce qui prend bcp de places.
Ce que je voudrais faire, c'est copier une ligne toute les 60-100 lignes et les coller sur une autre feuille.
Mon problème est que j'arrive pas à trouver comment poser ma variable pour incrementer tout ca.

Merci


2 réponses

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 653
Bonjour,
Même si je n'en voit pas l'intérêt...
Dim Lig As Long
With Sheets("Feuil1") 'à adapter, nom de la feuille à 60000 lignes
For Lig = 1 to 60000 Step 60 'ou 100 selon
    .Rows(Lig).Copy Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Offset(1, 0) 'à adapter : Feuil2 = feuille de destination des données
Next
End With
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 653
ouais... Je ne suis pas persuadé que ton fichier soit moins lourd...
De plus, maintenant tu va trainer une ligne vide toutes les 60...
D'où mon début de réponse par : Même si je n'en voit pas l'intérêt...
Effectivement il n'est pas plus lourd vu que je garde la feuille ac toutes les données.
Et est ce que c'est possible de sélectionner comme tu viens de faire 1 ligne toute les 60 mais en enregistrant sur la meme feuille ?
Si je remplace le "feuil2" par le nom de la feuille de départ ?
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 653
comme tu viens de faire 1 ligne toute les 60 mais en enregistrant sur la meme feuille ? En colonne J par exemple?
Oui c'est possible, mais il ne faut plus copier une ligne entière, mais que le Range concerné.
même si :
Même si je n'en voit pas l'intérêt...
Dim Lig As Long
With Sheets("Feuil1") 'à adapter, nom de la feuille à 60000 lignes
For Lig = 1 to 60000 Step 60 'ou 100 selon
    .Range("A" & Lig & ":H" & Lig).Copy .Range("J" & Rows.Count).End(xlUp).Offset(1, 0) 'à adapter : Feuil2 = feuille de destination des données
Next
End With
L'interet est qu'au lieu de faire un graphe avec de nouvelles données toutes les 10-15 secondes, j'ai maintenant une donnée toutes les 10 minutes, ce qui est suffisant car la machine est stable et varie très lentement :)

MErci pour ton aide !
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 653
De rien.
Bon week end
Messages postés
16525
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 octobre 2021
3 231
bonjour

Combien de colonnes ?

Tu es sûr(e) du paquet 100 lignes par feuille car cela fait 600 feuilles? ....

je verrai plutôt 1000 lignes mais tout dépend de ce que yu veux faire...

nota:normalement si + de 15000 lignes ==> access
http://office.microsoft.com/fr-ch/excel-help/utilisation-d-access-ou-d-excel-pour-gerer-vos-donnees-HA001042918.aspx

Michel
Sur une feuille, j'ai 8 colonnes et 60000 lignes, et je veux copier seulement 1 ligne toute les 60 lignes sur ma feuille 2, ainsi je n'aurais plus que 8 colonnes et 1000 lignes sur la feuille 2