apex77
Messages postés48Date d'inscriptionjeudi 27 mars 2008StatutMembreDernière intervention17 avril 2008
-
31 mars 2008 à 00:05
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
31 mars 2008 à 22:20
Bonsoir,
j'ai un problème avecce programme
on me dit dépassement de capacité !
pouvez vous medire purquoi
merci
Dim n As Double
n = 1 'ligne
m = 1
Do Until IsEmpty(Cells(n, m)) = False
Do
n = n + 1
Cells(n, 9) = ((Cells(n, 8) / Cells(n, 5)))
Cells(n, 9).NumberFormat = "0.00%"
Loop Until IsEmpty(Cells(n, 8)) = True
Loop
End Sub
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 31 mars 2008 à 22:20
Et qu'est-ce que tu as fait de ces lignes ?
Dim nbLignes As Long, i As Long, nbColonnes As Integer
nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
nbColonnes = Cells(1, Columns.Count).end(xlToLeft).column
Ce sont elles qui définissaient les conditions des Loop...Until
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 31 mars 2008 à 02:44
Salut
A ma connaissance, les feuilles Excel ne peuvent accueillir plus de 32767 lignes.
Arrives-tu à cette limite avec ton 'n' ?
Ta dernière boucle "Loop Until IsEmpty(Cells(n, 8)) = True" ne sert à rien
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 31 mars 2008 à 10:53
Dim nbLignes As Long, i As Long
nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
i = 2
Do
If Range("E" & i) <> 0 Then
Range("I" & i) = Range("H" & i) / Range("E" & i)
Range("I" & i).NumberFormat = "0.00%"
End If
i = i + 1
Loop Until i > nbLignes
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
apex77
Messages postés48Date d'inscriptionjeudi 27 mars 2008StatutMembreDernière intervention17 avril 2008 31 mars 2008 à 11:24
super merci !!!
encore une question
comment puis-je faire pour faire ce programme une colonne sur 2 à partir de la colonne I
toujours en utilisant une boucle avec DO ??
apex77
Messages postés48Date d'inscriptionjeudi 27 mars 2008StatutMembreDernière intervention17 avril 2008 31 mars 2008 à 12:11
alors ca serait une colonne sur 2 à partir de la colonneI, puis K pui M,..... mais je ne connais pas encore la derniere colonne car ca varie.
ma formule c'est bien toujours celle de gauche / E
merci beaucoup
apex77
Messages postés48Date d'inscriptionjeudi 27 mars 2008StatutMembreDernière intervention17 avril 2008 31 mars 2008 à 12:19
alors ca serait une colonne sur 2 à partir de la colonneI, puis K pui M,..... mais je ne connais pas encore la derniere colonne car ca varie.
ma formule c'est bien toujours celle de gauche / E
merci beaucoup
Donc, quelque chose comme ceci (?) sans avoir testé...
Dim nbLignes As Long, i As Long, nbColonnes As Integer
nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
nbColonnes = Cells(1, Columns.Count).end(xlToLeft).column
i 2: j 9
Do
Do
If Range("E" & i) <> 0 Then
Cells(i, j) = Cells(i, j - 1) / Range("E" & i)
Cells(i, j).NumberFormat = "0.00%"
End If
i = i + 1
Loop Until i > nbLignes
j = j + 2
Loop Until j > nbColonnes
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
apex77
Messages postés48Date d'inscriptionjeudi 27 mars 2008StatutMembreDernière intervention17 avril 2008 31 mars 2008 à 12:39
ouep super celui là
mais ca me fais aucune boucle ca e donne que la premiere cellule de la 1ere colonne
mais c'est pas possible de faire un programme en ne sachant pas le nombre de colonnes car mon nombre de colonnes n'est pas constant
apex77
Messages postés48Date d'inscriptionjeudi 27 mars 2008StatutMembreDernière intervention17 avril 2008 31 mars 2008 à 13:07
j'ai modifié un peu
mais j'arrive pas à faire pour toutes les cellules d'une colonne
ca me calcule qu'une valeur pour chaque colonne en faisant un escalier
Sub gg()
i 2: j 9
Do
Do
If Range("E" & i) <> 0 Then
Cells(i, j) = Cells(i, j - 1) / Range("E" & i)
Cells(i, j).NumberFormat = "0.00%"
End If
i = i + 1
Loop Until i > nbLignes
j = j + 2
Loop Until IsEmpty(Cells(1, j))