OVH Cloud OVH Cloud

Mon total ne s'affiche pas :(((

5 réponses
Avatar
François
Bonjour à vous tous.

Voici mon code :

Sub Macro1()
Dim Cellule As Range
Dim total As Variant
For Each Cellule In Selection
Range("D2").Select
Calcul:
If ActiveCell = "" Then
ActiveCell.Offset(1, 0).Select
GoTo Calcul
Else
If ActiveCell = "P2" Then
ActiveCell.Offset(0, 1).Select
If IsNumeric(Cellule) Then total = total + Cellule.Value
ActiveCell.Offset(1, -1).Select
If ActiveCell = "" Then
GoTo Fin
Else
GoTo Calcul
End If
End If
End If
Fin:
Next
Range("G1") = total
End Sub

Le total en G1 demeure toujours à 0. Pourquoi ? Quelqu'un peut m'aider.

Merci

5 réponses

Avatar
michdenis
Bonjour François,

Essaie ceci : n'oublie pas d'adapter le nom de la feuille de la procédure selon le nom de la feuille de ton application.

'----------------------------------
Sub Macro11()

Dim Rg As Range, Cellule As Range
Dim Total As Double

With Worksheets("Feuil1") 'à déterminer
Set Rg = .Range("D2:D" & .Range("D65536").End(xlUp).Row)
For Each Cellule In Rg
If UCase(Cellule) = "P2" Then
If IsNumeric(Cellule.Offset(, 1)) Then
Total = Total + Cellule.Offset(, 1)
End If
End If
Next
.Range("G1") = Total
End With
Set Rg = Nothing: Set Cellule = Nothing
End Sub
'----------------------------------


Salutations!



"François" a écrit dans le message de news: bIdid.3111$
Bonjour à vous tous.

Voici mon code :

Sub Macro1()
Dim Cellule As Range
Dim total As Variant
For Each Cellule In Selection
Range("D2").Select
Calcul:
If ActiveCell = "" Then
ActiveCell.Offset(1, 0).Select
GoTo Calcul
Else
If ActiveCell = "P2" Then
ActiveCell.Offset(0, 1).Select
If IsNumeric(Cellule) Then total = total + Cellule.Value
ActiveCell.Offset(1, -1).Select
If ActiveCell = "" Then
GoTo Fin
Else
GoTo Calcul
End If
End If
End If
Fin:
Next
Range("G1") = total
End Sub

Le total en G1 demeure toujours à 0. Pourquoi ? Quelqu'un peut m'aider.

Merci
Avatar
michdenis
J'allais oublié François,

Tu peux aussi utiliser une formule pour déterminer ce que tu cherches :


Remplace D2:D6 par la plage réelle de ton application.
Tu peux si tu veux, utiliser des plages de cellules nommées.

Cette formule matricielle doit être valider en appuyant en même temps sur
les touches Maj+ Ctrl + Enter pour la valider.

En G1, tu inscris la formule suivante :
=SOMME(SI(((D2:D6="P2")*(ESTNUM(E2:E6)))=1;E2:E6))


Salutations!




"michdenis" a écrit dans le message de news:
Bonjour François,

Essaie ceci : n'oublie pas d'adapter le nom de la feuille de la procédure selon le nom de la feuille de ton application.

'----------------------------------
Sub Macro11()

Dim Rg As Range, Cellule As Range
Dim Total As Double

With Worksheets("Feuil1") 'à déterminer
Set Rg = .Range("D2:D" & .Range("D65536").End(xlUp).Row)
For Each Cellule In Rg
If UCase(Cellule) = "P2" Then
If IsNumeric(Cellule.Offset(, 1)) Then
Total = Total + Cellule.Offset(, 1)
End If
End If
Next
.Range("G1") = Total
End With
Set Rg = Nothing: Set Cellule = Nothing
End Sub
'----------------------------------


Salutations!



"François" a écrit dans le message de news: bIdid.3111$
Bonjour à vous tous.

Voici mon code :

Sub Macro1()
Dim Cellule As Range
Dim total As Variant
For Each Cellule In Selection
Range("D2").Select
Calcul:
If ActiveCell = "" Then
ActiveCell.Offset(1, 0).Select
GoTo Calcul
Else
If ActiveCell = "P2" Then
ActiveCell.Offset(0, 1).Select
If IsNumeric(Cellule) Then total = total + Cellule.Value
ActiveCell.Offset(1, -1).Select
If ActiveCell = "" Then
GoTo Fin
Else
GoTo Calcul
End If
End If
End If
Fin:
Next
Range("G1") = total
End Sub

Le total en G1 demeure toujours à 0. Pourquoi ? Quelqu'un peut m'aider.

Merci
Avatar
François
Bonjour,

Lorsque je copie cette formule en G1 :
=SOMME(SI(((D2:D6="P2")*(ESTNUM(E2:E6)))=1;E2:E6))

j'ai Valeur dans la cellule ?

Merci pour ton aide


"michdenis" a écrit dans le message de news:

J'allais oublié François,

Tu peux aussi utiliser une formule pour déterminer ce que tu cherches :


Remplace D2:D6 par la plage réelle de ton application.
Tu peux si tu veux, utiliser des plages de cellules nommées.

Cette formule matricielle doit être valider en appuyant en même temps sur
les touches Maj+ Ctrl + Enter pour la valider.

En G1, tu inscris la formule suivante :
=SOMME(SI(((D2:D6="P2")*(ESTNUM(E2:E6)))=1;E2:E6))


Salutations!




"michdenis" a écrit dans le message de news:

Bonjour François,

Essaie ceci : n'oublie pas d'adapter le nom de la feuille de la procédure
selon le nom de la feuille de ton application.

'----------------------------------
Sub Macro11()

Dim Rg As Range, Cellule As Range
Dim Total As Double

With Worksheets("Feuil1") 'à déterminer
Set Rg = .Range("D2:D" & .Range("D65536").End(xlUp).Row)
For Each Cellule In Rg
If UCase(Cellule) = "P2" Then
If IsNumeric(Cellule.Offset(, 1)) Then
Total = Total + Cellule.Offset(, 1)
End If
End If
Next
.Range("G1") = Total
End With
Set Rg = Nothing: Set Cellule = Nothing
End Sub
'----------------------------------


Salutations!



"François" a écrit dans le message de news:
bIdid.3111$
Bonjour à vous tous.

Voici mon code :

Sub Macro1()
Dim Cellule As Range
Dim total As Variant
For Each Cellule In Selection
Range("D2").Select
Calcul:
If ActiveCell = "" Then
ActiveCell.Offset(1, 0).Select
GoTo Calcul
Else
If ActiveCell = "P2" Then
ActiveCell.Offset(0, 1).Select
If IsNumeric(Cellule) Then total = total + Cellule.Value
ActiveCell.Offset(1, -1).Select
If ActiveCell = "" Then
GoTo Fin
Else
GoTo Calcul
End If
End If
End If
Fin:
Next
Range("G1") = total
End Sub

Le total en G1 demeure toujours à 0. Pourquoi ? Quelqu'un peut m'aider.

Merci






Avatar
Starwing
Salut François,

Cette formule matricielle doit être valider en appuyant en même temps sur
les touches Maj+ Ctrl + Enter pour la valider.


Tu devrais donc voir :

{=SOMME(SI(((D2:D6="P2")*(ESTNUM(E2:E6)))=1;E2:E6))}

Dans ta barre de formule

Starwing

Avatar
AV
Lorsque je copie cette formule en G1 :
=SOMME(SI(((D2:D6="P2")*(ESTNUM(E2:E6)))=1;E2:E6))


C'est parceque, à juste titre, tu n'as pas voulu te tordre les doigts ;-))
=SOMMEPROD((D2:D6="P2")*ESTNUM(E2:E6);E2:E6)

AV