Bonjour,
J'avais posté il y a quelques temps pour un problème sous Excel qu'on avait réussi à me résoudre avec ce code:
Ce code me permet de rendre la cellule de la colonne 25 négative si la cellule de la colonne 14 vaut -1 (il n'y a qu'une partie du code mais même juste avec ca, l'erreur apparait).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim r As Range 'Colonne à parcourir Dim iX As Integer ' index ligne parcouru 'Par exemple colonne 25... Set r = Range(Cells(1, 25), Cells(1, 25).End(xlDown)) For iX = 1 To r.Rows.Count '¨parcours les lignes If r.Cells(iX, 14) = -1 Then ' Debug.Print "IX : " & iX & ".."; r.Cells(iX) r.Cells(iX) = r.Cells(iX) * r.Parent.Cells(iX, 14) Else End If ' r.Parent = feuille contenant la colonne initiale '.Cells(ix,14) .. 14 = Colonne N Next
Ce code marchait jusqu'à ce qu'il ne marche plus lol. Pour ca que je reviens vous voir. En effet, l'erreur affiché était un dépassement de capacité. J'ai donc pensé que mon excel contenait trop de lignes (36000) et en diminuant le nombre de lignes (j'ai du en supprimer 15000 donc j'ai réessayer avec environ 20000 lignes), ca marche. Mais comment faire pour utiliser cette fonction proprement avec mes 36000 lignes ???
Peut être avec un tant que ou 2 macros différentes ? J'ai essayé en coupant le for en deux c-à-d de 1 à 20000 puis de 20001 au reste mais ca ne marche pas, alors peut être dans deux macros ou deux fonctions différentes ?? Et si vous pouvez m'expliquer pourquoi cette erreur se produit. Est ce une limite d'excel ou est ce que c'est parce qu'il ne me reste que 15 Mo de libre sur le disque dur (ca y fait peut etre) ?
Merci d'avance de toutes vos réponses.
Partager