Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Tableau en RAM et mise en forme

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lasmarco

XLDnaute Nouveau
Bonjour à tous,

J'ai une problématique qui est la suivante: je possède un fichier qui fait plus d'un million de lignes sur 9 colonnes dont je dois parcourir et supprimer un certain nombre de lignes. Après avoir chercher sur internet différentes solutions, je pense que la meilleure serait d'utiliser la RAM du PC pour traiter le contenu du fichier.

Le problème, c'est que je ne sais pas si c'est possible de supprimer ou modifier des lignes mise en mémoire, et l'autre c'est savoir comment on fait?

Voilà ce que j'ai commencé à faire

Code:
        DernLigne = Range("A1").End(xlDown).Row
        'Redimmensionnement du tableau avec x lignes et 9 colonnes
        ReDim TableauRAM(DernLigne - 2, 8)
        
        'Enregistrement des valeurs dans le tableau
        For i = 0 To DernLigne - 2
            TableauRAM(i, 0) = Range("A" & i + 2)
            TableauRAM(i, 1) = Range("B" & i + 2)
            TableauRAM(i, 2) = Range("C" & i + 2)
            TableauRAM(i, 3) = Range("D" & i + 2)
            TableauRAM(i, 4) = Range("E" & i + 2)
            TableauRAM(i, 5) = Range("F" & i + 2)
            TableauRAM(i, 6) = Range("G" & i + 2)
            TableauRAM(i, 7) = Range("H" & i + 2)
            TableauRAM(i, 8) = Range("I" & i + 2)
            TableauRAM(i, 9) = Range("J" & i + 2)
            TableauRAM(i, 10) = Range("K" & i + 2)
        Next

Merci pour votre aide,
 
Re : Tableau en RAM et mise en forme

Bonjour,

Suppression de lignes

0,15 sec pour 20.000 lignes)

http://boisgontierjacques.free.fr/fichiers/Cellules/SupLignesRapide.xls

Code:
Sub supLignesRapide()
  Application.ScreenUpdating = False
  a = Range("A2:A" & [A65000].End(xlUp).Row)
  For i = LBound(a) To UBound(a)
    If a(i, 1) <> "xxxx" Then a(i, 1) = 0 Else a(i, 1) = "sup"
  Next i
  Columns("b:b").Insert Shift:=xlToRight
  [B2].Resize(UBound(a)) = a
  [A2].CurrentRegion.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess
  On Error Resume Next
  Range("B2:B65000").SpecialCells(xlCellTypeConstants, 2).EntireRow.Delete
  Columns("b:b").Delete Shift:=xlToLeft
End Sub

http://boisgontierjacques.free.fr/fichiers/Cellules/SupLignesCondition.xls


Code:
Sub supLignesRapideTableau()
  Application.ScreenUpdating = False
  a = Range("A1").CurrentRegion.Value
  Dim c()
  ReDim c(1 To UBound(a, 1), 1 To UBound(a, 2))
  ligne = 1
  For i = 1 To UBound(a)
    If a(i, 26) <> 2011 Then
      For k = 1 To UBound(a, 2): c(ligne, k) = a(i, k): Next k
      ligne = ligne + 1
    End If
  Next
  [A1].Resize(ligne, UBound(a, 2)) = c
End Sub


Code:
Sub supLignesRapideConservePrésentation()
  Application.ScreenUpdating = False
  a = Range("z2:z" & [z65000].End(xlUp).Row)
  For i = LBound(a) To UBound(a)
    If a(i, 1) <> 2011 Then a(i, 1) = 0 Else a(i, 1) = "sup"
  Next i
  Columns("aa:aa").Insert Shift:=xlToRight
  [aa2].Resize(UBound(a)) = a
  [A2].CurrentRegion.Sort Key1:=Range("aa2"), Order1:=xlAscending, Header:=xlGuess
  On Error Resume Next
  Range("aa2:aa65000").SpecialCells(xlCellTypeConstants, 2).EntireRow.Delete
  Columns("aa:aa").Delete Shift:=xlToLeft
End Sub


JB
 
Dernière édition:
Re : Tableau en RAM et mise en forme

Merci pour ta réponse mais je ne vois comment supprimer des lignes dans un tableau en mémoire. Ce que je voudrais c'est supprimer une ligne complète comme on peut le faire sur le tableur.

Je ne sais pas si c'est très clair 😕
 
Re : Tableau en RAM et mise en forme

Bonjour Lasmacro, JB

Le problème c'est qu'on ne sait pas sur quelle critère, tu veux supprimer tes lignes?

De plus avec un fichier repésentant le problème anonymisé avec 200 lignes qu'on pourrait recopier sur 1 million de lignes, ce serait plus simple pour t'aider.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
241
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
Réponses
6
Affichages
159
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…