à l'aide !trop de colonne .range(A1:CT....)

  • Initiateur de la discussion Initiateur de la discussion leledes99
  • Date de début Date de début

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 !

L

leledes99

Guest
Bonjour à mon sauveur !
j'importe un fichier .xls de 16364 lignes et de + de 100 colonnes !

VBA plante à ce niveau (message Overflow) :
quand je mets "tablo = .Range("A2:AE" & Derlig) " ça fonctionne mais au delà ça plante !!
================================================
Dim Chemin As String, Derlig As Long, N As Long, I As Long

With Sheets(QVFileName)
.Activate
' Derlig = Derniere ligne de l'onglet
Derlig = .Range("A65536").End(xlUp).Row
tablo = .Range("A2:CT" & Derlig) ========> plantage à e niveau là
End With

For I = 1 To UBound(tablo, 1)
NewSheet.Cells(N, 1).NumberFormat = "@"
NewSheet.Cells(N, 1).Value = tablo(I, 1) ' Rpt Year

........
Merci d'avance pour le coup de pouce
 
Re : à l'aide !trop de colonne .range(A1:CT....)

Bonjour à tous,

Merci pour toutes vos réponses mais rien m'a malheureusement changé à mon problème :
j'ai opté pour la solution de Fo rum comme ci-dessous :

Dim Chemin As String, Derlig As Long, tablo, tablo1, N As Long, I As Long

With Sheets(QVFileName)
.Activate
' Derlig = Derniere ligne de l'onglet
Derlig = .Range("A65536").End(xlUp).Row
tablo = .Range("A1:AE" & Derlig)
tablo1 = .Range("AF1:AJ" & Derlig)
End With

J'ai un message Overflow sur Tablo1, en fait dès que l'on dépasse "AE" en colonne VBA plante en erreur Overflow.

en ce qui concerne la réponse de JPN :

"Certes, mais le UBound et les indices d'un Range, après, ça va pas le faire...
Soit tu utilises ensuite Tablo.Count, soit tu charges ton tableau par 2 boucles...
Bon courage "

Je n'ai pas tout compris mais je pense qu'une double boucle ne changera rien au problème, vu qu'il prendre les colonnes AF à CT .... dans la seconde boucle.

Si quelqu'un d'autre à une idée de génie je suis preneuse !!

encore merci pour votre aide à tous.
 
Re : à l'aide !trop de colonne .range(A1:CT....)

bonjour a tous

voici quelque chose qui tourne (un peu de patience est tout de même requis)

Code:
Sub test()
Application.ScreenUpdating = False
With Sheets("Feuil1")
' Derlig = Derniere ligne de l'onglet
DerLig = .Range("A65536").End(xlUp).Row
DerCol = .Range("IV1").End(xlToLeft).Column
For n = 1 To DerLig
 For m = 1 To DerCol
   .Cells(n, m).NumberFormat = "@"
 Next
Next
End With
Application.ScreenUpdating = True
End Sub

pour la valeur je n'ai rien mis ignorant ce qu'est I
 
Re : à l'aide !trop de colonne .range(A1:CT....)

Merci PierreJean pour ta solution,

je la teste demain au boulot et te tiens également au courant, je crains néanmoins que la solution soit lourde pour un fichier d'env 16000 lignes et 100 colonnes, à voir.

J'ai réfléchit de mon côté à une autre solution, celle de faire un copie de cet excel en quatre sheet distincts (copie de A1 à AE16384 => sheet 1, copie de AF1 à BJ16384 ==> sheet2 etc ..) et de travailler ensuite avec quatre Tablo comme l'avait sugéré Fo rum ci-dessous, dans les nouveaux sheet, les colonnes de dépasseraient pas AE donc cela devrait fonctionner.

Je teste tout cele demain et merci à tous pour votre disponibilité.

Bye et bonne soirée
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
912
Réponses
2
Affichages
1 K
  • Question Question
Microsoft 365 Programme trop lent
Réponses
12
Affichages
1 K
S
Réponses
13
Affichages
2 K
Stedemart
S
G
Réponses
14
Affichages
3 K
GMeunier
G
Réponses
1
Affichages
1 K
Retour