la difference entre sub et private sub ?

milsodor

XLDnaute Nouveau
bonsoir,
c'est toujours moi,le débutant..:p
j'avance tout doucement dans mon apprentissage,mais il y a un truc que j'arrive pas à cerner..
je fait une macro je la commence par sub,elle apparait dans les macros,je peut l'appliquer grace à un bouton par exemple,mais si je met private sub,je la vois pas..??
par exemple pour trier automatiquement une colonne voila ce que j'ai tapé:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer 'indice de parcours de toutes les valeurs du trie
Dim temp As String '
Dim cell As Variant
Dim lettreCellule As String
Dim lettreColone As String
Dim nbColonesApres As Integer
Dim nbColonesAvant As Integer
Dim derCellule As String
Dim premCellule As String
cell = "b3"
nbColonesApres = 9
nbColonesAvant = 1
lettreColone = Mid(cell, 1, 1)
temp = ActiveCell.Address
lettreCellule = Mid(temp, 2, 1)
If lettreCellule = lettreColone Then
Range(cell).Select
i = 0
While ActiveCell.Offset(i, 0).Text <> ""
i = i + 1
Wend
premCellule = Range(cell).Offset(0, -nbColonesAvant).Address
derCellule = Range(cell).Offset(i - 1, nbColonesApres).Address
Range(premCellule & ":" & derCellule).Select

Selection.Sort Key1:=Range(cell), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End If
End Sub

donc mon probleme est que j'ai pas encore tout saisi la nuance entre ces 2 termes,malgré mes recherches....
y'a un truc qui m'echappe
,car meme en rajoutant à la fin de ma colonne un mot quelconque,la colonne n'est pas triée.
auriez vous une piste??
merci
 

JYLL

Nous a quitté
Repose en paix
Re : la difference entre sub et private sub ?

Bonsoir Milsidor,

Les Private SUB ne s'adressent qu'à la feuille pour laquelle ils sont écrits mais, tu peux très bien mettre un bouton dans ta feuille à l'aide de la barre d'outils Visual Basic et là , ce bouton aurra ses propriètés au mêm endroit que ton Private et tu pourras déclancher ta macro à partir d'un clic sur ce bouton.

Exemple joint. Bon test.
 

Pièces jointes

  • Private_sub.zip
    47.8 KB · Affichages: 1 334

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : la difference entre sub et private sub ?

Bonjour

Excuse moi kiki mais le private sub n'a rien à voir avec la portée des variables mais il s'agit de la portée de la procédure. Et en effet l'interêt de la déclarer Private c'est qu'elle soit invisible dans la liste des macros.
 

tototiti2008

XLDnaute Barbatruc
Re : la difference entre sub et private sub ?

Bonjour à tous,

Dans ces cas la, comment fait-on pour activer la macro si elle est en private?

Le but du Private est d'éviter que l'on puisse appeler la procédure en dehors de la feuille de code où elle a été placée (et donc invisible dans les macros)

Un des cas où le Private est quasi automatique, ce sont les macros évènementielles (qui se déclenchent automatiquement lors d'une action sur un objet)

Par exemple, ici, cette procédure est à mettre dans le code de la feuille concernée, et se déclenchera automatiquement lors de la modification d'une valeur de cellule de cette feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

J'espère que ça donne quelques pistes...
 

Discussions similaires

Réponses
1
Affichages
169