calcul a chaque changement de nom

jjjerome

XLDnaute Occasionnel
Bonjour le forum,

Je fais appel à vos connaissance car je ne parviens pas a faire se que je veux.
J'ai un classeur avec plusieurs lignes pour chaque intervenants (en colonne C). La 1ere ligne de chaque noms est utilisée pour calculer les nombres d'opération de chaque intervenant.

J'ai utilisé l'enregistreur de macro pour faire ce calsul, mais je ne sais pas comment indiquer que ce calcul doit se faire sur la 1ere ligne de chaque changement de noms.

Je ne suis pas sure que je me fasse bien comprendre... alors je vous joint un exemple

Merci de votre aide.
 

Pièces jointes

  • PLAN LPBO.xlsm
    16.3 KB · Affichages: 99
  • PLAN LPBO.xlsm
    16.3 KB · Affichages: 87
  • PLAN LPBO.xlsm
    16.3 KB · Affichages: 121
Dernière édition:

likeit

XLDnaute Nouveau
Re : calcul a chaque changement de nom

Bonjour jjjerome,

Je pense que vous devez utiliser un sous taux au lieu de se casser la tête avec une macro.

1. Tout d'abord vous devez trier la colonne n°3
2. Sélectionner votre tableau
3. Aller dans le menu données puis Sous total
4. Dans le champs à chaque changement de : mettez le champs trier (colonne 3)
Dans fonction utiliser : ce que vous voulez faire (ici Somme)
Et enfin, cocher les champs dont vous voulez faire le calcul

Pour finir OK

J'espère que ça peut vous aidez! :)
 

jjjerome

XLDnaute Occasionnel
Re : calcul a chaque changement de nom

Merci likeit pour cette réponse, je ne connaissais pas cette solution qui semble intéressante,
Par contre dans mon cas, je voudrais que les sommes soit indiquées dans les lignes existante, de +, ces ajouts de ligne risquent de me planter les macro existante. Avec cette méthode, il ne me semble pas qu'il soit possible de concatener le texte en colonne 'I' (avec separateur /).
 

bbb38

XLDnaute Accro
Re : calcul a chaque changement de nom

Bonjour jjjerome, le forum,
Un code à tester ci-joint sur la feuille 2.
Cordialement,
Bernard

P.S. Je teste une autre solution pour que la 1ère ligne de chaque nom soit utilisée pour le calcul du nombre d’opérations de chaque intervenant.
 

Pièces jointes

  • PLAN LPBO.xlsm
    22.4 KB · Affichages: 82
  • PLAN LPBO.xlsm
    22.4 KB · Affichages: 78
  • PLAN LPBO.xlsm
    22.4 KB · Affichages: 89
Dernière édition:

jjjerome

XLDnaute Occasionnel
Re : calcul a chaque changement de nom

Bonjour le forum, bbb38,
Ssuper, merci pour tar éponse, le calcul se fait très bien à chaque nouveau noms, mais à chaque fois que je lance la macro, une nouvelle ligne (avec un nouveau calcul) s'ajoute. Est-ce possible que ce calcul se fasse sur la première ligne existante, et qu'aucune ligne ne soit ajoutée ?
 

jjjerome

XLDnaute Occasionnel
Re : calcul a chaque changement de nom

Bonjour bbb38, le forum,

Merci pour ta réponse, seul petit point de détail, je ne voudrais pas qu' un ajout de ligne soit fait, même lors de la première exécution de la macro, mes lignes entête sont toujours existante (il n'y a pas d'ajout de ligne une fois que la ligne entête à été crée 1 fois, ça c'est OK !!).

J'ai essayé de modifier par moi même, mais j'avoue ne pas comprendre le code...
 

jjjerome

XLDnaute Occasionnel
Re : calcul a chaque changement de nom

Bonjour Bernard, le forum,

D'après ce que je comprend, le calcule se fait sur la ligne de couleur 17. Vu que je suis sur un document existant avec des couleurs différentes, je préférerai que le calcule se fasse sur la 1ere ligne a chaque changement de nom en colonne C ; du genre :
if cells(i, 3) = 'different de la ligne superieur' then rows(i).delette...

Merci d'avance
 

jjjerome

XLDnaute Occasionnel
Re : calcul a chaque changement de nom

Re,
J'ai finalement modifier le code comme ci-dessous. Mais j'ai une erreur quand j'ai un chiffre en colonne 9... Je voudrais dans cette colonne que soit totalisé les noms identiques (ex : 3 Camions / 2 PC...)

Private Sub Calcul()
Application.ScreenUpdating = False
'Application.Calculation = xlCalculationManual
Dim xdlgn As Long, i As Long, xlgnadresse As Long
Dim xtlop1 As Integer, xtlop2 As Integer, xtlop3 As Integer, xdetail As String, xnom As String
' Tri de la feuille2 sur la colonne C
xdlgn = Range("C" & Rows.Count).End(xlUp).Row
Range("A7:L" & xdlgn).Sort Key1:=Worksheets("Feuil2").Range("C7"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
' Effacement des totaux
For i = 7 To xdlgn
If Cells(i, 3) <> i - 1 Then 'Rows(i).Delete

End If
Next i
' Ecriture de l'entête
xlgnadresse = 7: xnom = Cells(xlgnadresse, 3)
' Call EcritureEntete(xlgnadresse, xnom)
' boucle sur la feuille 2
i = 8
Do While Cells(i, 3) <> ""
If Cells(i, 3) = xnom Then
xtlop1 = xtlop1 + Cells(i, 6).Value: xtlop2 = xtlop2 + Cells(i, 7).Value: xtlop3 = xtlop3 + Cells(i, 8).Value: xdetail = xdetail + Cells(i, 9).Value & "/"
i = i + 1
Else
Call EcrituresTotaux(xtlop1, xtlop2, xtlop3, xdetail, xlgnadresse)
xtlop1 = 0: xtlop2 = 0: xtlop3 = 0: xdetail = " "
xnom = Cells(i, 3): xlgnadresse = i
' Ecriture de l'entête
' Call EcritureEntete(xlgnadresse, xnom)
i = i + 1
End If
Loop
Call EcrituresTotaux(xtlop1, xtlop2, xtlop3, xdetail, xlgnadresse)
' Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
 

bbb38

XLDnaute Accro
Re : calcul a chaque changement de nom

Bonjour jjjerome, le forum,
Merci pour ta réponse, seul petit point de détail, je ne voudrais pas qu' un ajout de ligne soit fait, même lors de la première exécution de la macro, mes lignes entête sont toujours existante (il n'y a pas d'ajout de ligne une fois que la ligne entête à été crée 1 fois, ça c'est OK !!).
Je n’ai pas compris ta remarque. Si l’on ajoute des lignes avec des noms identiques à ceux existants, les lignes récapitulatives (sauf pour la première) ne pourront pas être aux mêmes lignes.
Peux-tu mettre ton dernier fichier avec une feuille avant les récapitulations, et une deuxième feuille après celles-ci.
Cordialement,
Bernard
 
Dernière édition:

Discussions similaires

  • Question
Microsoft 365 #N/A
Réponses
6
Affichages
249
Réponses
2
Affichages
158

Statistiques des forums

Discussions
312 318
Messages
2 087 208
Membres
103 493
dernier inscrit
Vidal Salvador