[Excel] Macros éléments variables

JISSE -  
tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je voudrais remplacer les macros suivantes par une seule, avec entrée des variables:

Function sommeNo(x, y)
sommeNo = x + y
End Function

Sub Somme35()
Cells(3, 5) = sommeNo(3, 5)
End Sub
Sub Somme45()
Cells(4, 5) = sommeNo(4, 5)
End Sub
Sub Somme87()
Cells(8, 7) = sommeNo(8, 7)
End Sub
Sub Somme91()
Cells(9, 1) = sommeNo(9, 1)
End Sub

Merci pour toute aide
Configuration: Windows XP Internet Explorer 6.0

3 réponses

  1. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    bonjour,
    une macro avec des 'entrées variables' doit etre appellée en passant les valeurs, donc 2 macros :s
    je propose de selectionner la zone de cellules puis executer la macro suivante
    Sub sommeligcol()
    For Each c In Selection
    c.Value = c.Row + c.Column
    Next c
    End Sub
    si ça ne convient pas peux tu stp expliquer ce que tu voudrais comme 'variables' ?
    0
    1. JISSE
       
      Merci mille fois, ça m'aidera pour autre chose.
      Pour répondre à ta question, j'aimerais rentrer x=... et y=... pour que la macro fonctionne.
      0
  2. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    re,
    Sub sommeligcol()
    lig = CInt(InputBox("entrez le numéro de ligne"))
    col = CInt(InputBox("entrez le numéro de colonne"))
    Cells(lig, col).Value = lig + col
    End Sub
    voilà :)
    0
    1. JISSE
       
      Merci bien, ça me dépanne...
      0
  3. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    De rien,
    sinon pour plusieurs cellules, tu peux boucler comme ça:
    Sub sommeligcol()
    While Not rep = vbNo
    lig = CInt(InputBox("entrez le numéro de ligne"))
    col = CInt(InputBox("entrez le numéro de colonne"))
    Cells(lig, col).Value = lig + col
    rep = MsgBox("Continuer ?", vbYesNo)
    Wend
    End Sub
    0