EXCEL à VBA
Résolu/Fermé
Cha69
Messages postés
32
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
16 mai 2009
-
27 avril 2009 à 14:04
Cha69 Messages postés 32 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 16 mai 2009 - 27 avril 2009 à 14:54
Cha69 Messages postés 32 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 16 mai 2009 - 27 avril 2009 à 14:54
A voir également:
- EXCEL à VBA
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
5 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
27 avril 2009 à 14:10
27 avril 2009 à 14:10
tu te fous pas de moi ?
http://www.commentcamarche.net/forum/affich 12195417 vba boucle do until?#2
http://www.commentcamarche.net/forum/affich 12195417 vba boucle do until?#2
Cha69
Messages postés
32
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
16 mai 2009
4
27 avril 2009 à 14:16
27 avril 2009 à 14:16
non, désolé, je croyais que ça marchait mais non!! il met la ligne en rouge mais je ne comprends pas pourquoi, c'est pour ça que j'ai cru que c'était countif.
voilà ce que j'ai écrit (numero_colonne est un paramètre de la fonction)
For i = 6 To 51 Step 3
If Application.CountIf(Range(ListeOp, Cells(i, numero_colonne)) = 0 Then
a = 0
ElseIf Application.CountIf(Range(ListeEqt, Cells(i+1,1)) = 0 Then
a = 0
Else: a = Debit(Cells(i, numero_colonne), Cells(i + 1, numero_colonne), Vapeur)
End If
somme = somme + a
a = 0
Next
voilà ce que j'ai écrit (numero_colonne est un paramètre de la fonction)
For i = 6 To 51 Step 3
If Application.CountIf(Range(ListeOp, Cells(i, numero_colonne)) = 0 Then
a = 0
ElseIf Application.CountIf(Range(ListeEqt, Cells(i+1,1)) = 0 Then
a = 0
Else: a = Debit(Cells(i, numero_colonne), Cells(i + 1, numero_colonne), Vapeur)
End If
somme = somme + a
a = 0
Next
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
27 avril 2009 à 14:21
27 avril 2009 à 14:21
si listeop est un nom de variable
Application.CountIf(Range(ListeOp), Cells(i, numero_colonne)) = 0 Then
si listeop est un nom de groupe de cellule
Application.CountIf(Range("ListeOp"), Cells(i, numero_colonne)) = 0 Then
edit: 14:23h
effectivement, je m'étais planté dans les parenthèses (et encore maintenant... )Donc, excuses moi pour mon coup de gueule.
Application.CountIf(Range(ListeOp), Cells(i, numero_colonne)) = 0 Then
si listeop est un nom de groupe de cellule
Application.CountIf(Range("ListeOp"), Cells(i, numero_colonne)) = 0 Then
edit: 14:23h
effectivement, je m'étais planté dans les parenthèses (et encore maintenant... )Donc, excuses moi pour mon coup de gueule.
Cha69
Messages postés
32
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
16 mai 2009
4
27 avril 2009 à 14:37
27 avril 2009 à 14:37
c'est bon, les parenthèses étaient mal placées.
Merci Michel_m
est ce que je peux encore abusé de ton aide?
quand j'écris:
Function Conso_jour(numero_colonne As Integer, utilite As String)
' Déclaration des variables
Dim somme As Integer
Dim a As Integer
Dim i As Integer
' Boucle de calculs
For i = 6 To 51 Step 3
If Application.CountIf(Range(ListeOp), Cells(i, numero_colonne)) = 0 Then
a = 0
ElseIf Application.CountIf(Range(ListeEqt), Cells(i + 1, 1)) = 0 Then
a = 0
Else: a = Debit(Cells(i, numero_colonne), Cells(i + 1, numero_colonne))
End If
somme = somme + a
a = 0
Next
Conso_jour = somme
End Function
il n'arrive pas à calculer, je ne sais pas ou est l'erreur, je ne suis pas sure qu'il sache qu'elle est la colonne selectionnée pour le calcul.
pourtant c'est un paramètre de la fonction.
Merci Michel_m
est ce que je peux encore abusé de ton aide?
quand j'écris:
Function Conso_jour(numero_colonne As Integer, utilite As String)
' Déclaration des variables
Dim somme As Integer
Dim a As Integer
Dim i As Integer
' Boucle de calculs
For i = 6 To 51 Step 3
If Application.CountIf(Range(ListeOp), Cells(i, numero_colonne)) = 0 Then
a = 0
ElseIf Application.CountIf(Range(ListeEqt), Cells(i + 1, 1)) = 0 Then
a = 0
Else: a = Debit(Cells(i, numero_colonne), Cells(i + 1, numero_colonne))
End If
somme = somme + a
a = 0
Next
Conso_jour = somme
End Function
il n'arrive pas à calculer, je ne sais pas ou est l'erreur, je ne suis pas sure qu'il sache qu'elle est la colonne selectionnée pour le calcul.
pourtant c'est un paramètre de la fonction.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Cha69
Messages postés
32
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
16 mai 2009
4
27 avril 2009 à 14:54
27 avril 2009 à 14:54
erreur de ma part, ça marche !!
OUF !!!
OUF !!!