Tout les jours une questions :)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

JeanMikael

XLDnaute Junior
Tous les jours une question 🙂

Bonjour le forum, comme mon titre de post l'indique j'ai aujourd'hui un nouveau problème c'est pour cela que je me tourne vers vous, dans une feuille
j'ai la chaine de caractere "Total" qui peut se trouver dans n'importe qu'elle cellule de la plage ("B10:IV10") ce que je souhaite donc c'est que a chaque fois que le programme rencontre la chaine "Total" dans cette plage qu'il me fasse la somme de B10 jusqu'a l'adresse ou se trouve la chaine de caractere "Total" dans la cellule juste en dessous de "Total",j'ai bien essayé avec des find associé a des offset mais rien n'y fait, j'espère avoir été clair merci d'avance pour votre aide, bonne après-midi.

Cordialement,
Jean-Mikaël
 
Dernière édition:
Re : Tout les jours une questions 🙂

bonjour Jean-Mikael

comme ceci peut-etre:

Code:
Sub test()

For n = 256 To 2 Step -1
 If Cells(10, n) = "Total" Then
   Cells(11, n).FormulaLocal = "=SOMME(B10:" & Cells(10, n - 1).Address(0, 0) & ")"
 End If
Next n
End Sub
 
Re : Tout les jours une questions 🙂

Re-,
Le plus simple aurait été de rester sur le même fil...
le numéro de colonne comportant le mot Total est le numéro de la dernière colonne remplie de la ligne. A partir de là, il est aisé de calculer toutes les cellules de la ligne comprises entre la cellule B10 et la cellule Total.
Exemple :

Sub addition()
y = [iv10].End(xlToLeft).Column ' le numéro de la colonne comprenant Total
x = Application.Sum(Range(Cells(11, 3), Cells(11, y - 1)))
End Sub

si tu cherches le résultat de la ligne 11, sachant que le mot Total est inscrit dans la ligne 10, et que la première cellule à additionner est C11 (Cells(11, 3))

Edit, pas raffraichit, bonjour Pierrejean
 
Re : Tout les jours une questions 🙂

Re bhbh et pierrejean, alors en ce qui concerne ta macro pierrejean elle fonctionne nikel le seul soucil c'est que je l'execute a la chaine sur une dizaine de classeurs actifs et que VB ne veux pas d'une autre boucle for car j'en utilise déjà une pour appliquer les différents sous programme à tous mes classeurs ouverts, la question est de savoir comment imbriquer une boucle for dans une autre ou alors avec ta macro pierrejean comment l'exécuté automatiquement sur tous les classeurs actifs?
bhbh ton programme me parait très bien mais en dessous de total il n'y a rien qui s'affiche merci de votre aide à vous deux.

Cordialement,
Jean-Mikaël
 
Re : Tout les jours une questions 🙂

re Jean-Mikael
bonjour bhbh

pour toutes les feuilles de tous les classeurs

Code:
Sub test()
Dim w As Workbook
Dim sh As Worksheet
Dim n As Integer
For Each w In Workbooks
 For Each sh In w.Worksheets
    For n = 256 To 2 Step -1
       If sh.Cells(10, n) = "Total" Then
          sh.Cells(11, n).FormulaLocal = "=SOMME(B10:" & sh.Cells(10, n - 1).Address(0, 0) & ")"
       End If
    Next n
 Next sh
Next w
End Sub

a supposer bien sur que toutes les feuilles soient concernées

Attention : je n'ai pas testé
 
Re : Tout les jours une questions 🙂

Re-,
en reprenant le code que tu m'as expédié en mail :
For n = 3 To Workbooks.Count
Workbooks(n).Activate
cpt=0
For Each sh In ActiveWorkbook.Sheets
If sh.Name Like "Erreur*" Then cpt = cpt + 1: Range("B10").Offset(0, cpt).Value = sh.Name
Range("B10").Offset(0, cpt + 1).Value = "Total"
range("B10").offset(1,cpt+1).value =Application.Sum(Range(Cells(11, 3), Cells(11, cpt)))
Next sh

Next n

Non testé également, mais comme il n'y a pas de données dans la ligne 11, le résultat sera forcément à 0
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
659
Retour