VBA - transmettre un argument string incrémenté d'une macro
4 réponses
twinley
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux
faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le
transmettre en l'incrémentant.
Sub testkillsub()
Dim Classeur As Workbook
Dim Module As Object
Dim n As Integer
Dim Feuil As String
For n = 49 To 84
DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change"
Next n
End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$)
Dim liDeb, NbLi
With Wbk.VBProject.VBComponents(CodeMod).CodeModule
liDeb = .ProcStartLine(NomProc, 0)
NbLi = .ProcCountLines(NomProc, 0)
.deleteLines liDeb, NbLi
End With
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
papou
Bonjour A priori vite fait comme ça, je dirai que c'est normal : Modifie ceci : DelProc ThisWorkbook, "Feuil & n" en : DelProc ThisWorkbook, "Feuil" & n
Cordialement Pascal
"twinley" a écrit dans le message news: #mo#
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le transmettre en l'incrémentant.
Sub testkillsub() Dim Classeur As Workbook Dim Module As Object Dim n As Integer Dim Feuil As String
For n = 49 To 84 DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change" Next n End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$) Dim liDeb, NbLi With Wbk.VBProject.VBComponents(CodeMod).CodeModule liDeb = .ProcStartLine(NomProc, 0) NbLi = .ProcCountLines(NomProc, 0) .deleteLines liDeb, NbLi End With End Sub
Merci pour l'aide -- à+twinley
Bonjour
A priori vite fait comme ça, je dirai que c'est normal :
Modifie ceci :
DelProc ThisWorkbook, "Feuil & n"
en :
DelProc ThisWorkbook, "Feuil" & n
Cordialement
Pascal
"twinley" <twinleymax@hotmail.com> a écrit dans le message news:
#mo#UXkdFHA.580@TK2MSFTNGP15.phx.gbl...
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux
faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le
transmettre en l'incrémentant.
Sub testkillsub()
Dim Classeur As Workbook
Dim Module As Object
Dim n As Integer
Dim Feuil As String
For n = 49 To 84
DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change"
Next n
End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$)
Dim liDeb, NbLi
With Wbk.VBProject.VBComponents(CodeMod).CodeModule
liDeb = .ProcStartLine(NomProc, 0)
NbLi = .ProcCountLines(NomProc, 0)
.deleteLines liDeb, NbLi
End With
End Sub
Bonjour A priori vite fait comme ça, je dirai que c'est normal : Modifie ceci : DelProc ThisWorkbook, "Feuil & n" en : DelProc ThisWorkbook, "Feuil" & n
Cordialement Pascal
"twinley" a écrit dans le message news: #mo#
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le transmettre en l'incrémentant.
Sub testkillsub() Dim Classeur As Workbook Dim Module As Object Dim n As Integer Dim Feuil As String
For n = 49 To 84 DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change" Next n End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$) Dim liDeb, NbLi With Wbk.VBProject.VBComponents(CodeMod).CodeModule liDeb = .ProcStartLine(NomProc, 0) NbLi = .ProcCountLines(NomProc, 0) .deleteLines liDeb, NbLi End With End Sub
Merci pour l'aide -- à+twinley
twinley
Bonjour papou,
C'est parfait. Mais il me semblait avoir essayé la solution dès ma troisième modif et cela n'a pas marché...ohlala.
Merci
à+twinley
papou wrote:
Bonjour A priori vite fait comme ça, je dirai que c'est normal : Modifie ceci : DelProc ThisWorkbook, "Feuil & n" en : DelProc ThisWorkbook, "Feuil" & n
Cordialement Pascal
"twinley" a écrit dans le message news: #mo#
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le transmettre en l'incrémentant.
Sub testkillsub() Dim Classeur As Workbook Dim Module As Object Dim n As Integer Dim Feuil As String
For n = 49 To 84 DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change" Next n End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$) Dim liDeb, NbLi With Wbk.VBProject.VBComponents(CodeMod).CodeModule liDeb = .ProcStartLine(NomProc, 0) NbLi = .ProcCountLines(NomProc, 0) .deleteLines liDeb, NbLi End With End Sub
Merci pour l'aide -- à+twinley
Bonjour papou,
C'est parfait.
Mais il me semblait avoir essayé la solution dès ma troisième modif et
cela n'a pas marché...ohlala.
Merci
à+twinley
papou wrote:
Bonjour
A priori vite fait comme ça, je dirai que c'est normal :
Modifie ceci :
DelProc ThisWorkbook, "Feuil & n"
en :
DelProc ThisWorkbook, "Feuil" & n
Cordialement
Pascal
"twinley" <twinleymax@hotmail.com> a écrit dans le message news:
#mo#UXkdFHA.580@TK2MSFTNGP15.phx.gbl...
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux
faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le
transmettre en l'incrémentant.
Sub testkillsub()
Dim Classeur As Workbook
Dim Module As Object
Dim n As Integer
Dim Feuil As String
For n = 49 To 84
DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change"
Next n
End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$)
Dim liDeb, NbLi
With Wbk.VBProject.VBComponents(CodeMod).CodeModule
liDeb = .ProcStartLine(NomProc, 0)
NbLi = .ProcCountLines(NomProc, 0)
.deleteLines liDeb, NbLi
End With
End Sub
C'est parfait. Mais il me semblait avoir essayé la solution dès ma troisième modif et cela n'a pas marché...ohlala.
Merci
à+twinley
papou wrote:
Bonjour A priori vite fait comme ça, je dirai que c'est normal : Modifie ceci : DelProc ThisWorkbook, "Feuil & n" en : DelProc ThisWorkbook, "Feuil" & n
Cordialement Pascal
"twinley" a écrit dans le message news: #mo#
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le transmettre en l'incrémentant.
Sub testkillsub() Dim Classeur As Workbook Dim Module As Object Dim n As Integer Dim Feuil As String
For n = 49 To 84 DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change" Next n End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$) Dim liDeb, NbLi With Wbk.VBProject.VBComponents(CodeMod).CodeModule liDeb = .ProcStartLine(NomProc, 0) NbLi = .ProcCountLines(NomProc, 0) .deleteLines liDeb, NbLi End With End Sub
Merci pour l'aide -- à+twinley
Elliac
Bonjour,
As-tu pnsé à insérer tes nouvelles lignes à l'intérieur de la plage utilisée précédemment. Sinon dans ton Vlookup il te faut redéfinir la plage utilisée. As-tu un 0 en argument "Range_Lookup" ?
Camille
"twinley" wrote:
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le transmettre en l'incrémentant.
Sub testkillsub() Dim Classeur As Workbook Dim Module As Object Dim n As Integer Dim Feuil As String
For n = 49 To 84 DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change" Next n End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$) Dim liDeb, NbLi With Wbk.VBProject.VBComponents(CodeMod).CodeModule liDeb = .ProcStartLine(NomProc, 0) NbLi = .ProcCountLines(NomProc, 0) .deleteLines liDeb, NbLi End With End Sub
Merci pour l'aide -- à+twinley
Bonjour,
As-tu pnsé à insérer tes nouvelles lignes à l'intérieur de la plage utilisée
précédemment. Sinon dans ton Vlookup il te faut redéfinir la plage utilisée.
As-tu un 0 en argument "Range_Lookup" ?
Camille
"twinley" wrote:
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux
faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le
transmettre en l'incrémentant.
Sub testkillsub()
Dim Classeur As Workbook
Dim Module As Object
Dim n As Integer
Dim Feuil As String
For n = 49 To 84
DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change"
Next n
End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$)
Dim liDeb, NbLi
With Wbk.VBProject.VBComponents(CodeMod).CodeModule
liDeb = .ProcStartLine(NomProc, 0)
NbLi = .ProcCountLines(NomProc, 0)
.deleteLines liDeb, NbLi
End With
End Sub
As-tu pnsé à insérer tes nouvelles lignes à l'intérieur de la plage utilisée précédemment. Sinon dans ton Vlookup il te faut redéfinir la plage utilisée. As-tu un 0 en argument "Range_Lookup" ?
Camille
"twinley" wrote:
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le transmettre en l'incrémentant.
Sub testkillsub() Dim Classeur As Workbook Dim Module As Object Dim n As Integer Dim Feuil As String
For n = 49 To 84 DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change" Next n End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$) Dim liDeb, NbLi With Wbk.VBProject.VBComponents(CodeMod).CodeModule liDeb = .ProcStartLine(NomProc, 0) NbLi = .ProcCountLines(NomProc, 0) .deleteLines liDeb, NbLi End With End Sub
Merci pour l'aide -- à+twinley
twinley
Bonjour,
eh non, je ne savais même pas que cela existait... je suppose que c'est pour le post suivant ? la souris a ripé !
à+twinley
Elliac wrote:
Bonjour,
As-tu pnsé à insérer tes nouvelles lignes à l'intérieur de la plage utilisée précédemment. Sinon dans ton Vlookup il te faut redéfinir la plage utilisée. As-tu un 0 en argument "Range_Lookup" ?
Camille
"twinley" wrote:
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le transmettre en l'incrémentant.
Sub testkillsub() Dim Classeur As Workbook Dim Module As Object Dim n As Integer Dim Feuil As String
For n = 49 To 84 DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change" Next n End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$) Dim liDeb, NbLi With Wbk.VBProject.VBComponents(CodeMod).CodeModule liDeb = .ProcStartLine(NomProc, 0) NbLi = .ProcCountLines(NomProc, 0) .deleteLines liDeb, NbLi End With End Sub
Merci pour l'aide -- à+twinley
Bonjour,
eh non, je ne savais même pas que cela existait...
je suppose que c'est pour le post suivant ? la souris a ripé !
à+twinley
Elliac wrote:
Bonjour,
As-tu pnsé à insérer tes nouvelles lignes à l'intérieur de la plage utilisée
précédemment. Sinon dans ton Vlookup il te faut redéfinir la plage utilisée.
As-tu un 0 en argument "Range_Lookup" ?
Camille
"twinley" wrote:
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux
faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le
transmettre en l'incrémentant.
Sub testkillsub()
Dim Classeur As Workbook
Dim Module As Object
Dim n As Integer
Dim Feuil As String
For n = 49 To 84
DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change"
Next n
End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$)
Dim liDeb, NbLi
With Wbk.VBProject.VBComponents(CodeMod).CodeModule
liDeb = .ProcStartLine(NomProc, 0)
NbLi = .ProcCountLines(NomProc, 0)
.deleteLines liDeb, NbLi
End With
End Sub
eh non, je ne savais même pas que cela existait... je suppose que c'est pour le post suivant ? la souris a ripé !
à+twinley
Elliac wrote:
Bonjour,
As-tu pnsé à insérer tes nouvelles lignes à l'intérieur de la plage utilisée précédemment. Sinon dans ton Vlookup il te faut redéfinir la plage utilisée. As-tu un 0 en argument "Range_Lookup" ?
Camille
"twinley" wrote:
Bonjour à tous
J'ai du soucis pour passer l'argument string.
Si j'utilise "Feuil49" c'est bon pour une feuille.
Comme je veux traiter plusieurs feuilles, je mets une boucle et je veux faire évoluer le N° de feuille de 49 à 84.
Mais l'argument en CodeMod$ reste Feuil & n. Je n'arrive pas à le transmettre en l'incrémentant.
Sub testkillsub() Dim Classeur As Workbook Dim Module As Object Dim n As Integer Dim Feuil As String
For n = 49 To 84 DelProc ThisWorkbook, "Feuil & n", "Worksheet_Change" Next n End Sub
Sub DelProc(Wbk As Workbook, CodeMod$, NomProc$) Dim liDeb, NbLi With Wbk.VBProject.VBComponents(CodeMod).CodeModule liDeb = .ProcStartLine(NomProc, 0) NbLi = .ProcCountLines(NomProc, 0) .deleteLines liDeb, NbLi End With End Sub