• Initiateur de la discussion Initiateur de la discussion JJ1
  • 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 !

J

JJ1

Guest
Bonjour à tous,

J'ai une petite macro de quelques lignes qui teste des combinaisons source en AE1:AH129600 placées en destination AM1.

Mon tableau Excel de données va de A1à AD8000

Quand je lance ma macro (que j'ai copiée pour la peine sous Excel 2007 pour avoir 1 million de lignes) j'ai erreur 6: dépassement de capacité?
le debugueur jaunit:
For i = 1 To Range("ae130000").End(xlUp).Row
je pensais pourtant avoir 1 million de lignes?

voici le code:

Worksheets("Feuil1").Activate
Dim i As Integer
With ActiveSheet
For i = 1 To Range("ae130000").End(xlUp).Row
If .Range("ae" & i).Value = "" Then Exit Sub
.Range("ae" & i, "ah" & i).Copy Destination:=.Range("AM1")
.Range("ai" & i).Value = .Range("AQ1").Value
.Range("aj" & i).Value = .Range("AR1").Value
.Range("aK" & i).Value = .Range("AS1").Value
Next i
End With
Range("A1").Activate

merci de votre aide, je sèche...
Bonne journée
 
Re : macro: erreur 6

Bonjour

déjà ajoutes un point devant range dans la ligne for i=...

comme ceci

Worksheets("Feuil1").Activate
Dim i As Integer
With ActiveSheet
For i = 1 To .Range("ae130000").End(xlUp).Row
If .Range("ae" & i).Value = "" Then Exit Sub
.Range("ae" & i, "ah" & i).Copy Destination:=.Range("AM1")
.Range("ai" & i).Value = .Range("AQ1").Value
.Range("aj" & i).Value = .Range("AR1").Value
.Range("aK" & i).Value = .Range("AS1").Value
Next i
End With
Range("A1").Activate

Je pense que le bug est du à la déclaration de variable :
citation de l'aide visual basic: Les variables de type Integer sont stockées sous la forme de nombres de 16 bits (2 octets) dont la valeur est comprise entre -32 768 et 32 767

par contre Dim i as long fonctionne puisque :

citation de l'aide visual basic: Les variables de type Long (entier Long) sont stockées sous la forme de nombres signés de 32 bits (4 octets) dont la valeur est comprise entre -2 147 483 648 et 2 147 483 647

cdt
 
Dernière édition:
Re : macro: erreur 6

Bonjour Ledzepfred,
je ne pense pas que le point soit utile car elle fonctionne avec moins de lignes.
Pour le "DIM" je pensais aussi à ce "Integer", par quoi faut-il le remplacer pour aller au-delà de 32000 lignes?
merci
 
Re : macro: erreur 6

pour le point :

si ton feuillet actif n'est pas la feuille 1, range ("A130000").end(xlup).row te ramènera le numéro de ligne de ton feuillet actif (donc si tu n'as pas le même nombre de lignes dans le feuillet 1 par rapport à ton feuillet actif, le code ne s'excutera pas correctement)

A+
 
- 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
917
Réponses
4
Affichages
738
Réponses
10
Affichages
673
Réponses
15
Affichages
793
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour