Bonjour,
pour mettre en résolu, tu as normalement, sur une des réponse donnée (en haut de chacune en fait) un bouton indiquant "réponse accéptée". il suffit de cliquer dessus.
Pour ta macro : Il y a plusieurs problèmes
Cell as string => ? correspond à quoi ?
Pour lire et écrire une valeur avec la fonction cellS il faut l'utiliser ainsi.
cells(Ligne,Colonne).value = Valeur
Valeur =cells(Ligne,Colonne).value
Ta boucle commence à 0 +> impossible dans excel La ligne ou la colonne est forcément >= à 1
Vue que CELLS s'utilise comme ceci cells(Ligne,Colonne).value ... tu constatera que ton code lui demande de scruter non pas la cellule dans la colonne 1 puis celle d'à coté mais sur les lignes 1 et 2.
Pour finir, voici comment j'aurais fais (en reprenant ton exemple):
Function Somme_perso(Plage As Range)
Dim Plage As Range
Set Plage = Range("A1:A20")
'boucle sur chaque cellule de la plage
' > on crée un "objet" cellule mais tu
' pourrais le nomer TOTO.. c'est pareil
For Each cellule In Plage
' test les deux cellules colonne 1 et 2 sur la meme ligne
If cellule.Value = Cells(cellule.Row, cellule.Column + 1).Value Then
' test si c'est bien un nombre
If IsNumeric(Cells(cellule.Row, cellule.Column + 1).Value) Then
TOTAL = TOTAL + Cells(cellule.Row, cellule.Column + 1).Value
End If
End If
Next
'affichage du total
MsgBox (TOTAL)
End Function
Tu remarqueras que j'ai utilisé une Fonction plutot qu'un Sub. ce qui mer permet de l'utiliser dans mon classeur excel dans une formule par exemple (comme le Somme.si.ens de 2007).
Si tu regardes sur le net, tu trouveras des tutos sur l'utilisation des fonctions personnalisées en VBA. bonne lecture ^^
Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI