Macro recherche d'un espace + somme de colonnes
Fermé
Thornhegel
Messages postés
151
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
17 juillet 2022
-
Modifié le 24 juil. 2018 à 11:40
Thornhegel Messages postés 151 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 17 juillet 2022 - 24 juil. 2018 à 17:17
Thornhegel Messages postés 151 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 17 juillet 2022 - 24 juil. 2018 à 17:17
A voir également:
- Macro recherche d'un espace + somme de colonnes
- Espace insécable word - Guide
- Formule somme excel colonne - Guide
- Comment liberer de l'espace sur gmail - Guide
- Somme si couleur - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
2 réponses
via55
Messages postés
14495
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
7 novembre 2024
2 734
24 juil. 2018 à 16:47
24 juil. 2018 à 16:47
Bonjour Thorn
Un macro à adapter à ton fichier
Cdlmnt
Via
Un macro à adapter à ton fichier
Sub somme_partielle() dercol = 8 ' dernière colonne à traiter A ADAPTER derlign = 10 ' dernière ligne à traiter A ADAPTER For col = 2 To dercol ' boucle sur toutes le scolonnes 'RAZ variables tot = 0 vid1 = 0 vid2 = 0 ' 1er vide For lg = 2 To derlign 'boucle sur toutes les lignes If Cells(lg, col) = "" And Cells(lg + 1, col) <> "" And vid1 = 0 Then vid1 = lg 'si cellule vide et celle du desssous remplie et vid1=0 alors vid1=n° de ligne Next lg '2eme vide For lg = vid1 + 1 To derlign ' boucle sur la ligne après vide jusqu'à dernière If Cells(lg, col) = "" And Cells(lg - 1, col) <> "" And vid2 = 0 Then vid2 = lg 'si cellule vide et celle du desus remplie et vid2=0 alors vid2=n° de ligne Next lg 'si vid2=0 total=0 sinon total partiel des lignes entre vid1 et vid2 If vid2 = 0 Then tot = 0 Else tot = Application.WorksheetFunction.Sum(Range(Cells(vid1 + 1, col), Cells(vid2 - 1, col))) Cells(derlign + 2, col) = tot ' inscription du total 2 lignes en dessous de la dernière ligen à traiter Next col End Sub
Cdlmnt
Via
Jauster
Messages postés
126
Date d'inscription
jeudi 7 décembre 2017
Statut
Membre
Dernière intervention
31 août 2018
40
Modifié le 24 juil. 2018 à 15:27
Modifié le 24 juil. 2018 à 15:27
Bonjour,
Je ne comprends pas :
"Soit la somme par colonne des temps par opération entre la 1ère ligne d'espace du fichier Excel et la seconde."
Il faut faire la somme des valeurs entre 2 lignes blanches (sans donnée) ?
Pourquoi OP1 = 2.75 alors que OP2 = 16 et non 16.5 ?
Ou alors c'est les espaces dans la colonne A (OF) qui définissent la plage des sommes ?
Merci de m'éclaircir la dessus
Je ne comprends pas :
"Soit la somme par colonne des temps par opération entre la 1ère ligne d'espace du fichier Excel et la seconde."
Il faut faire la somme des valeurs entre 2 lignes blanches (sans donnée) ?
Pourquoi OP1 = 2.75 alors que OP2 = 16 et non 16.5 ?
Ou alors c'est les espaces dans la colonne A (OF) qui définissent la plage des sommes ?
Merci de m'éclaircir la dessus
Thornhegel
Messages postés
151
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
17 juillet 2022
12
24 juil. 2018 à 16:57
24 juil. 2018 à 16:57
Dans mon exemple, la ligne 4 est vide et définit donc le départ de la somme et la ligne 8 est la seconde ligne vide, ce qui doit définir la fin de la somme.
Le 0.5 dans l'OP 2 est après la seconde ligne vide, elle ne doit donc pas être prise en compte
Merci en tout cas
Le 0.5 dans l'OP 2 est après la seconde ligne vide, elle ne doit donc pas être prise en compte
Merci en tout cas
Thornhegel
Messages postés
151
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
17 juillet 2022
12
24 juil. 2018 à 17:17
24 juil. 2018 à 17:17
Résolu par la Macro ci-dessous, merci de l'aide en tout cas
Modifié le 24 juil. 2018 à 17:18
Merci beaucoup pour la réponse !
J'ai modifié un petit peu pour que cela corresponde à ce que je voulais mais l'idée du départ était très bonne.
Voici le code si quelqu'un d'autre pourrait être intéressé par cela.
J'ai sorti les variables vid1 et vid2 de la boucle car sinon j'avais un problème (exemple sur la photo, OP1 sortirait 2.25 au lieu de 2.75 car cellule B6 est vide).
Enfin, j'ai simplement rajouté une condition sur la somme finale pour que cela ne compte que les sommes dont j'ai besoin
Sub somme_partielle()
dercol = 13 ' dernière colonne à traiter A ADAPTER
derlign = 200 ' dernière ligne à traiter A ADAPTER
vid1 = 0
vid2 = 0
For col = 2 To dercol ' boucle sur toutes les colonnes
'RAZ variables
tot = 0
' 1er vide
For lg = 5 To derlign 'boucle sur toutes les lignes
If Cells(lg, col) = "" And Cells(lg + 1, col) <> "" And vid1 = 0 Then vid1 = lg 'si cellule vide et celle du desssous remplie et vid1=0 alors vid1=n° de ligne
Next lg
'2eme vide
For lg = vid1 + 1 To derlign ' boucle sur la ligne après vide jusqu'à dernière
If Cells(lg, col) = "" And Cells(lg - 1, col) <> "" And vid2 = 0 Then vid2 = lg 'si cellule vide et celle du desus remplie et vid2=0 alors vid2=n° de ligne
Next lg
'si vid2=0 total=0 sinon total partiel des lignes entre vid1 et vid2
If vid2 = 0 Then tot = 0 Else tot = Application.WorksheetFunction.Sum(Range(Cells(vid1 + 1, col), Cells(vid2 - 1, col)))
If col > 9 Then Cells(derlign + 2, col) = tot ' inscription du total 2 lignes en dessous de la dernière ligne à traiter
Next col
End Sub
En tout cas, cela a résolu mon problème donc merci beaucoup !
Thorn