Prob code vba
Fermé
paul57
Messages postés
18
Date d'inscription
jeudi 22 octobre 2009
Statut
Membre
Dernière intervention
14 janvier 2010
-
12 janv. 2010 à 11:10
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 - 12 janv. 2010 à 21:12
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 - 12 janv. 2010 à 21:12
A voir également:
- Prob code vba
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
9 réponses
Alex_Mansion82
Messages postés
370
Date d'inscription
lundi 21 décembre 2009
Statut
Membre
Dernière intervention
24 octobre 2012
94
12 janv. 2010 à 11:16
12 janv. 2010 à 11:16
Essaie de définir tes variables en Long et non en Integer.
Il semblerait que tu ai un dépassement de capacité. De mémoire un integer ne peux pas dépasser 32 000 et des poussières.
Il semblerait que tu ai un dépassement de capacité. De mémoire un integer ne peux pas dépasser 32 000 et des poussières.
paul57
Messages postés
18
Date d'inscription
jeudi 22 octobre 2009
Statut
Membre
Dernière intervention
14 janvier 2010
12 janv. 2010 à 11:26
12 janv. 2010 à 11:26
Merci, en effet c t le problème, par contre je ne sais pas comment effectuer les opérations suivantes avec vba :
- min(H11:H20)
- max(H11:H20)
- somme(H11:H20)
Merci :D
- min(H11:H20)
- max(H11:H20)
- somme(H11:H20)
Merci :D
Alex_Mansion82
Messages postés
370
Date d'inscription
lundi 21 décembre 2009
Statut
Membre
Dernière intervention
24 octobre 2012
94
12 janv. 2010 à 11:30
12 janv. 2010 à 11:30
Pour les min & max, il te faut comparer les valeurs de cellules une à une et stocker la valeur la plus petite/grande dans une variable. Le mieux est de passer par une boucle.
Pour la somme, tu boucles de 11 à 20 (compris), et à chaque passage de la boucle tu ajoutes la valeur de la cellule dans une variable.
Pour la somme, tu boucles de 11 à 20 (compris), et à chaque passage de la boucle tu ajoutes la valeur de la cellule dans une variable.
paul57
Messages postés
18
Date d'inscription
jeudi 22 octobre 2009
Statut
Membre
Dernière intervention
14 janvier 2010
12 janv. 2010 à 11:42
12 janv. 2010 à 11:42
Ok merci pour tes conseils ;) ca va m'etre très utile
Je te dirai si ca marche
Ciao ;)
Je te dirai si ca marche
Ciao ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Gord21
Messages postés
918
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
20 mars 2013
289
12 janv. 2010 à 13:14
12 janv. 2010 à 13:14
Pour les fonctions, tu peux utiliser WorksheetFunction.Min(Range("H11:H20")) le calcul sera plus rapide.
Idem avec Max et Sum
Idem avec Max et Sum
paul57
Messages postés
18
Date d'inscription
jeudi 22 octobre 2009
Statut
Membre
Dernière intervention
14 janvier 2010
12 janv. 2010 à 13:23
12 janv. 2010 à 13:23
Salut,
Voila la modification de mon code mais il ne comprend tjs pas!!
Dim i As Long
Dim j As Long
Dim k As Long
j = 0
For i = 11 To 65536
If Cells(i, 1) <> "" And i > j Then
For k = 11 To 65536
j = i + 23
Cells(i, 1) = Sheets("Historique Energie et Pmax").Cells(k, 1)
Cells(i, 2) = Sheets("Historique Energie et Pmax").Cells(k, 2)
Cells(i, 3) = Sheets("Historique Energie et Pmax").Cells(k, 3)
Cells(i, 4) = Sheets("Historique Energie et Pmax").Cells(k, 4)
Cells(i, 5) = Sheets("Historique Energie et Pmax").Cells(k, 5)
Cells(i, 6) = Sheets("Historique Energie et Pmax").Cells(k, 6)
WorksheetFunction.Min(Range("Hi:Hj")) = Sheets("Historique Energie et Pmax").Cells(k, 7)
WorksheetFunction.Max(Range("Hi:Hj")) = Sheets("Historique Energie et Pmax").Cells(k, 8)
WorksheetFunction.Sum(Range("Ii:Ij")) = Sheets("Historique Energie et Pmax").Cells(k, 9)
WorksheetFunction.Max(Range("Ii:Ij")) = Sheets("Historique Energie et Pmax").Cells(k, 10)
Next k
End If
Next i
Il ne comprend pas cette partie : .Min(Range("Hi:Hj"))
Est ce possible d'écrire Range("Hi:Hj")
Voila la modification de mon code mais il ne comprend tjs pas!!
Dim i As Long
Dim j As Long
Dim k As Long
j = 0
For i = 11 To 65536
If Cells(i, 1) <> "" And i > j Then
For k = 11 To 65536
j = i + 23
Cells(i, 1) = Sheets("Historique Energie et Pmax").Cells(k, 1)
Cells(i, 2) = Sheets("Historique Energie et Pmax").Cells(k, 2)
Cells(i, 3) = Sheets("Historique Energie et Pmax").Cells(k, 3)
Cells(i, 4) = Sheets("Historique Energie et Pmax").Cells(k, 4)
Cells(i, 5) = Sheets("Historique Energie et Pmax").Cells(k, 5)
Cells(i, 6) = Sheets("Historique Energie et Pmax").Cells(k, 6)
WorksheetFunction.Min(Range("Hi:Hj")) = Sheets("Historique Energie et Pmax").Cells(k, 7)
WorksheetFunction.Max(Range("Hi:Hj")) = Sheets("Historique Energie et Pmax").Cells(k, 8)
WorksheetFunction.Sum(Range("Ii:Ij")) = Sheets("Historique Energie et Pmax").Cells(k, 9)
WorksheetFunction.Max(Range("Ii:Ij")) = Sheets("Historique Energie et Pmax").Cells(k, 10)
Next k
End If
Next i
Il ne comprend pas cette partie : .Min(Range("Hi:Hj"))
Est ce possible d'écrire Range("Hi:Hj")
Gord21
Messages postés
918
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
20 mars 2013
289
12 janv. 2010 à 13:39
12 janv. 2010 à 13:39
Oui il faut mettre Range("H" & i &":H" & j) au lieu de Range("Hi:Hj")
paul57
Messages postés
18
Date d'inscription
jeudi 22 octobre 2009
Statut
Membre
Dernière intervention
14 janvier 2010
12 janv. 2010 à 14:15
12 janv. 2010 à 14:15
Je viens d'essayer mais il me dit : affectation a une constante non autorisé en m'indiquant .Min(Range("H" & i & ":H" & j)) =
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
12 janv. 2010 à 15:07
12 janv. 2010 à 15:07
En VBA le membre de gauche reçoit le résultat de la fonction qui se trouve à droite du signe =
je n'ai pas tout suivi mais cela ne marche pas parce que ta fonction est à gauche.
Essaye ça!
A+
je n'ai pas tout suivi mais cela ne marche pas parce que ta fonction est à gauche.
Essaye ça!
A+
Dim i As Long Dim j As Long Dim k As Long j = 0 For i = 11 To 65536 If Cells(i, 1) <> "" And i > j Then For k = 11 To 65536 j = i + 23 Cells(i, 1) = Sheets("Feuil1").Cells(k, 1) Cells(i, 2) = Sheets("Feuil1").Cells(k, 2) Cells(i, 3) = Sheets("Feuil1").Cells(k, 3) Cells(i, 4) = Sheets("Feuil1").Cells(k, 4) Cells(i, 5) = Sheets("Feuil1").Cells(k, 5) Cells(i, 6) = Sheets("Feuil1").Cells(k, 6) Sheets("Feuil1").Cells(k, 7) = WorksheetFunction.Min(Range("H" & i & ":H" & j)) Sheets("Feuil1").Cells(k, 8) = WorksheetFunction.Max(Range("H" & i & ":H" & j)) Sheets("Feuil1").Cells(k, 9) = WorksheetFunction.Sum(Range("I" & i & ":I" & j)) Sheets("Feuil1").Cells(k, 10) = WorksheetFunction.Max(Range("I" & i & ":I" & j)) Next k End If Next i
Gord21
Messages postés
918
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
20 mars 2013
289
12 janv. 2010 à 21:12
12 janv. 2010 à 21:12
Exact, j'ai lu le code un peu vite. Bonne remarque.