Sommer une partie des cellules

bibiphoqie

XLDnaute Nouveau
Bonjour,

J'ai commencé une macro qui permet d'additionner des lignes précises d'un fichier nommé "UserReportinitial" et de donner le résultat de la somme dans un fichier nommé "Board Données source".

Mon problème est que les lignes du fichier "UserReportinitial" que je veux sommer contiennent plusieurs informations et la somme ne marche donc pas.
Je souhaiterais donc en faisant ma somme ne garder que la partie de la cellule qui m'intéresse; les chiffres (c'est à dire la partie à gauche de l'espace).

Je crois qu'il faut faire intervenir la fonction InStr mais là je commence vraiment à m'y perdre :eek:

Je vous joint le fichier "UserReportinitial" ainsi qu'un bout de ma macro.

Dim a As String
Dim c As Range
Dim ad As String
Dim totaltests As Integer
Dim totalOK As Integer
Dim totalattente As Integer
Dim i, j, k As Integer


'le chemin du UserReportinitial se trouve dans la cellule B37 de mon 1er fichier
a = Sheets(1).Range("B37").Value

Workbooks.Open Filename:=a

'rechercher l'expression "Per Result Totals" dans le fichier UserReportinitial
With Range("A1:A300") 'prend en compte la plage de la recherche

Set c = .Find("Per Result Totals")

If Not c Is Nothing Then 'condition : si une occurrence est trouvée
ad = c.Address 'définit la variable ad (adresse de cette occurrence)


End If 'fin de la condition

End With

'initialisation pour compter le nombre total de tests prévus
totaltests = 0
'le nombre de tests prévus si situent 5 lignes plus bas que l'expression "Per Result Totals"
For i = 3 To 50
totaltests = totaltests + Cells(c.Row + 10, i)
Next

'initialisation pour compter le nombre de tests conformes
totalOK = 0
'le nombre de tests conformes se trouvent 3 lignes plus bas que "Per Result Totals"
For j = 3 To 50
totalOK = totalOK + Cells(c.Row + 3, i)
Next

'initialisation pour calculer les tests non testés
totalattente = 0
For k = 3 To 50
totalattente = totalattente + Cells(c.Row + 7, i)
Next

'import des sommes calculées dans le 1er fichier nommée "Board Données Source"
Windows("Board_Données Source 16-04.xls").Activate
Sheets("Feuil1").Select
Range("B40").Value = totaltests
Range("B42").Value = totalOK
Range("B44").Value = totalattente

Merci de votre aide :eek:
 

Pièces jointes

  • UserReportinitial.zip
    6.1 KB · Affichages: 18

bibiphoqie

XLDnaute Nouveau
Re : Sommer une partie des cellules

Merci dixit et pardon de répondre aussi tard.
En effet cette formule marche bien.
Encore une question pour la débutante que je suis, comment fait-on pour sélectionner la partie gauche lorsqu'il y a 2 espaces et pas un seul? :confused:

Re merci de ton aide
 

bibiphoqie

XLDnaute Nouveau
Re : Sommer une partie des cellules

Si c'est bien ce traitement que je veux appliquer mais quand je reprends ta formule pour la cellule C44 au lieu de la cellule A2 de mon UserReportinitial
(soit Cells(5, 1) = Left(Cells(44, 3), InStr(Cells(44, 3), " "))), cela n'affiche rien.
J'ai donc pensé que c'était du au fait qu'il y avait 2 espaces en C44.
Saurais-tu me dire quelle est mon erreur (qui est sans doute très bête)??

Merci :eek:
 

dixit

XLDnaute Impliqué
Re : Sommer une partie des cellules

re,
me voici, je m'étais absenté cet après-midi.
quel est le contenu de C44 ? (remplacer les données confidentielles par d'autres en respectant la structure).
ps : je ne parviens pas à ouvrir le fichier qui était joint au post précédent.
bye
 

bibiphoqie

XLDnaute Nouveau
Re : Sommer une partie des cellules

Pardon... je viens de me rendre compte qu'en rentrant moi même dans une case l'expression: "35+2 espaces+78%" et en appliquant la macro, celle-ci marchait très bien et me renvoyait le nombre 35.
Je pense donc que la macro ne marche pas spécifiquement sur mon fichier qui est un fichier où les données sont importées depuis un autre logiciel.
Les cellules ont peut-etre un format particulier qui ne permet pas d'appliquer de macro sur celles-ci?? si vous avez des idées vous pouvez m'en part :confused:

Mercii
 

Discussions similaires

Réponses
11
Affichages
174