OVH Cloud OVH Cloud

Mettre tout un bloc VBA en commentaire?

6 réponses
Avatar
Frédéric
Bonjour,
Quelqu'un connait-il un moyen, dans l'éditeur VBE de mettre tout un bloc en
commentaire? Ou alors doit on se résigner à mettre une apostrophe en début de
chaque ligne?
Merci

6 réponses

Avatar
Fredo \(67\)
Salut

Dans les options tu peux rajouter un bouton dans la barre des tâches qui te
permet de mettre tout un bloc en commentaire
et un autre qui ôte les commentaire de tout un bloc...

"Frédéric" a écrit dans le message de
news:
Bonjour,
Quelqu'un connait-il un moyen, dans l'éditeur VBE de mettre tout un bloc
en

commentaire? Ou alors doit on se résigner à mettre une apostrophe en début
de

chaque ligne?
Merci


Avatar
michdenis
Bonjour Frédéric,

Voici une procédure qui met en commentaire toute une procédure !

'---------------------------
Sub test()
'Nom du classeur, Nom du module, Nom Macro
MettreEnCommentaire ThisWorkbook.Name, "module1", "Macro1"

End Sub
'---------------------------

Sub MettreEnCommentaire(NomDuClasseur As String, _
NomDuModule As String, _
NomDeLaSub As String)
Dim Debut As Integer, Fin As Long, T As String

'.On Error Resume Next
With Workbooks(NomDuClasseur)
With .VBProject.VBComponents("Module1").CodeModule
Debut = .ProcStartLine(NomDeLaSub, 0)
Fin = .ProcCountLines(NomDeLaSub, 0) + Debut
For A = Debut To Fin
If .Lines(A, 1) <> "" Then
T = "'" & .Lines(A, 1)
.ReplaceLine (A), T
End If
Next
End With
End With

End Sub
'---------------------------


Salutations!




"Frédéric" a écrit dans le message de news:
Bonjour,
Quelqu'un connait-il un moyen, dans l'éditeur VBE de mettre tout un bloc en
commentaire? Ou alors doit on se résigner à mettre une apostrophe en début de
chaque ligne?
Merci
Avatar
michdenis
Bonjour,

Dans cet sub, j'ai omis de substituer le nom du module saisi en dur pour le nom de la variable. la procédure devrait se lire comme
ceci :

Sub MettreEnCommentaire(NomDuClasseur As String, _
NomDuModule As String, _
NomDeLaSub As String)
Dim Debut As Integer, Fin As Long, T As String

On Error Resume Next
With Workbooks(NomDuClasseur)
With .VBProject.VBComponents(NomDuModule).CodeModule
Debut = .ProcStartLine(NomDeLaSub, 0)
Fin = .ProcCountLines(NomDeLaSub, 0) + Debut
For A = Debut To Fin
If .Lines(A, 1) <> "" Then
T = "'" & .Lines(A, 1)
.ReplaceLine (A), T
End If
Next
End With
End With

End Sub



Salutations!




"michdenis" a écrit dans le message de news:
Bonjour Frédéric,

Voici une procédure qui met en commentaire toute une procédure !

'---------------------------
Sub test()
'Nom du classeur, Nom du module, Nom Macro
MettreEnCommentaire ThisWorkbook.Name, "module1", "Macro1"

End Sub
'---------------------------

Sub MettreEnCommentaire(NomDuClasseur As String, _
NomDuModule As String, _
NomDeLaSub As String)
Dim Debut As Integer, Fin As Long, T As String

'.On Error Resume Next
With Workbooks(NomDuClasseur)
With .VBProject.VBComponents("Module1").CodeModule
Debut = .ProcStartLine(NomDeLaSub, 0)
Fin = .ProcCountLines(NomDeLaSub, 0) + Debut
For A = Debut To Fin
If .Lines(A, 1) <> "" Then
T = "'" & .Lines(A, 1)
.ReplaceLine (A), T
End If
Next
End With
End With

End Sub
'---------------------------


Salutations!




"Frédéric" a écrit dans le message de news:
Bonjour,
Quelqu'un connait-il un moyen, dans l'éditeur VBE de mettre tout un bloc en
commentaire? Ou alors doit on se résigner à mettre une apostrophe en début de
chaque ligne?
Merci
Avatar
tiah
Bonjour !

Affiche la barre d'outils "Edition"
et tu auras un bouton "commentaires" pour faire ce que tu veux.

tiah.
Avatar
michdenis
Bonjour Tiah,

Merci. Mais cela ne t'intéresse pas de savoir comment excel
fait pour mettre en commentaire une section du code qui est sélectionné ?

;-))

Je te propose ceci :

Pour rouler ce code, tu dois ajouter la bibliothèque suivante:
"Microsoft Visual Basic for Application Extensibility 5.3"

'-----------------------------
Sub test()

'En paramètres : Nom du classeur et Nom du module où le texte
' est sélectionné.

MettreEnCommentaireTexteSelection ThisWorkbook.Name, "Module1"

End Sub
'-----------------------------
Sub MettreEnCommentaireTexteSelection( _
NomClasseur As String, _
NomModule As String)

Dim DebutLigne As Long, DebutCol As Long
Dim FinLigne As Long, FinCol As Long
Dim codeText As String
Dim Cpane As VBIDE.CodePane
Dim Cmodule As VBIDE.CodeModule
Dim i As Integer, A As Integer

On Error Resume Next
With Workbooks(NomClasseur)
Set Cpane = .VBProject.VBComponents(NomModule).CodeModule.CodePane
Set Cmodule = Cpane.CodeModule
End With
If Err Then Exit Sub
Cpane.GetSelection DebutLigne, DebutCol, FinLigne, FinCol
If DebutLigne = FinLigne And DebutCol = FinCol Then Exit Sub
For i = DebutLigne To FinLigne
codeText = "'" & Cmodule.Lines(DebutLigne + A, 1)
Cmodule.ReplaceLine DebutLigne + A, codeText
A = A + 1
Next
Set Cpane = Nothing: Set Cmodule = Nothing

End Sub
'-----------------------------


Salutations!





"tiah" a écrit dans le message de news:
Bonjour !

Affiche la barre d'outils "Edition"
et tu auras un bouton "commentaires" pour faire ce que tu veux.

tiah.
Avatar
tiah
allo michdenis !

c'est pas que ça m'intéresse pas, mais j'ai plutôt tendance à
vouloir trouver des codes pour des actions que je ne peux pas faire !
:)

pourquoi mettre ça compliqué quand c'est simple ?

et surtout, j'imagine le pauvre bougre qui au départ demandait :
"comment faire pour commenter un bloc ?".

entre un code de 20 lignes et un simple bouton, il doit aimer mieux le
second choix ! ;)

merci tout de même !

tiah.