Macro copie de lignes/colonnes (débutant)

J'ai envoyé le fichier au début de la conversation, ce n'est pas suffisant ? L'original a juste beaucoup plus de lignes

Mea Culpa, je n'avais pas vu ! Je laisse à ThauThème le soin de poursuivre.

Re,

Je crains que cette autre méthode ne sois pas compatible avec autant de lignes. Peut-être y arriveras-tu en découpant ton tableau en plusieurs ou alors avec la première méthode qui ne souffre pas de limite mais qui est très lente. Je ne sais pas quoi te dire d'autre...

Bonjour ThauThème, le forum,

comme il s'agit d'une erreur d'incompatibilité de type, je pense que ça n'est pas dû au nombre de lignes mais aux données de la feuille de calcul : y'a au moins une d'elles qui n'est pas adéquate.

dhany

Re,

Bonjour Dhany,

J'ai pourtant déjà rencontré des problèmes avec cette méthode sur des très grand tableaux. On m'avait même mentionné la limite mais je ne l'ai pas noté et je ne m'en souviens plus. Un test sur 60 000 m'as mis 13 secondes sans probleme. Le même test sur 112 000 lignes m'a planté avec le même message...

Re,

Bonjour Dhany,

J'ai pourtant déjà rencontré des problèmes avec cette méthode sur des très grand tableaux. On m'avait même mentionné la limite mais je ne l'ai pas noté et je ne m'en souviens plus. Un test sur 60 000 m'as mis 13 secondes sans probleme. Le même test sur 112 000 lignes m'a planté avec le même message...

Bonjour tout le monde !

Est ce qu'il n'est pas possible de procéder par blocs en utilisant ta macro ? Une première exécution de la dernière ligne à la ligne 60000, puis une seconde jusqu'à la première ?

Bonjour le fil, bonjour le forum,

Oui Pedro, c'est ce que je disais ici....

Re,

Je crains que cette autre méthode ne sois pas compatible avec autant de lignes. Peut-être y arriveras-tu en découpant ton tableau en plusieurs ou alors avec la première méthode qui ne souffre pas de limite mais qui est très lente. Je ne sais pas quoi te dire d'autre...

J'attendais un retour de Marjow pour lui proposer un code avec une découpe du tableau mais il reste muet comme un président de la république face à un gilet jaune...

Pourquoi pas ça :

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Long 'déclare la variable I (Incrément)
Dim LI As Long 'déclare la variable LI (LIgne)

Set OS = Worksheets("Feuil1") 'définit l'onglet source OS
Set OD = Worksheets("Feuil2") 'définit l'onglet destination OD
DL = OS.Cells(Application.Rows.Count, "A").End(xlUp).Row
TV = OS.Range("A1:H" & 50000) 'définit le tableau des valeurs TV
OD.Range("A1").Resize(1, 7).Value = Application.Index(TV, 1) 'renvoie dans A1 redimensionnée la première ligne du tableau des valeurs TV
LI = 2 'initialise la variable LI
For I = 2 To UBound(TV, 1) 'boucle sur toutes les ligne I du tableau des valeurs TV
    'si la valeur de la donnée ligne I colonne 7 (=> colonne G) est supérieure à 480, renvoie dans la cellule ligne LI, colonne 1 la ligne I du tableau des valeurs TV
    If CDbl(TV(I, 7)) > 480 Then OD.Cells(LI, 1).Resize(1, 7) = Application.Index(TV, I): LI = LI + 1
Next I 'prochaine ligne de la boucle
TV = OS.Range("A50001:H" & DL)
For I = 1 To UBound(TV, 1) 'boucle sur toutes les ligne I du tableau des valeurs TV
    'si la valeur de la donnée ligne I colonne 7 (=> colonne G) est supérieure à 480, renvoie dans la cellule ligne LI, colonne 1 la ligne I du tableau des valeurs TV
    If CDbl(TV(I, 7)) > 480 Then OD.Cells(LI, 1).Resize(1, 7) = Application.Index(TV, I): LI = LI + 1
Next I 'prochaine ligne de la boucle
End Sub

Bonjour,

Le retour de Marjow (que l'on met au féminin d'ailleurs donc qui préférerais être présidentE que président) est que j'ai finalement essayer la méthode que je proposais désespérément dans mes messages précédents, c'est à dire la suppression de lignes.

Et j'obtiens exactement ce dont j'ai besoin, avec une macro simple et surtout accessible pour mon niveau de grande débutante.

Mais merci quand même

Marjow

Bonjour Marjorie,

merci pour ton retour d'infos ! le retour de la présidentE Marjorie, ça se fête !

j'suis sûr qu'tu pourras mieux écouter les gilets jaunes, et réellement entendre leurs revendications !

vive Marjorie ! (le Roi est mort ; vive la Reine !)

dhany

Rechercher des sujets similaires à "macro copie lignes colonnes debutant"