2010-05-17 8 views
0

J'ai plusieurs feuilles de calcul avec un code similaire, donc je voudrais en faire une macro. Mon seul problème est qu'il y a plusieurs variables. Donc, à certains points, le code ressemble à ceci:Créer une macro avec plusieurs variables

Dim Msg1 As String 
Dim Msg2 As String 

Public Sub ListBox1_LostFocus() 
ListBox1.Height = 15 
With ListBox1 
Msg1 = "'" 
    For i = 0 To .ListCount - 1 
     If .Selected(i) Then 
      Msg1 = Msg1 & .List(i) & "','" 
     End If 
    Next i 
End With 
Msg1 = Left(Msg1, Len(Msg1) - 2) 
Sheets("Sheet1").Range("R3", "R3") = Msg1 
End Sub 

et ainsi de suite. Comment puis-je transmettre une nouvelle valeur pour Msg1, Msg2, Msg3 pour chaque feuille de calcul?

+0

peut-être vous devriez élaborer sur votre question un peu plus, cette routine construit une liste séparée par des virgules des valeurs sélectionnées et les stocke dans une cellule, si vous voulez changer la liste sélectionnez d'autres entrées –

+0

Comment créer une macro à substituer valeurs pour Msg1 pour chaque page? Donc, si c'est le code pour sheet1, comment puis-je copier cela pour sheet2 (sans remplacer chaque variable)? Je voudrais un code que je peux modifier et que les modifications affectent toutes les feuilles. – Daniel

+0

Je ne veux pas changer la liste, je veux changer la partie Msg. – Daniel

Répondre

0

Créer un module et mettre gathermessage ci-dessous dans ce module

public function gathermessage(list as listbox) as string 
    'generate your message 
    gathermessage = msg 
end function 

utiliser:

Sheets("Sheet1").Range("R3", "R3") = gathermessage(listbox1) 

Je crois que ce serait un bon exercice pour vous de travailler sur les détails.

Questions connexes