Je remercie, tout d'abord, Isabelle pour m'avoir donner ce code en date du
15/10/09 :
bonjour Michel,
il faudra modifier le nom de Feuil1 et Feuil2 selon le cas,
Sub CopiDeCode()
Dim S As String
With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule
S = .Lines(1, .CountOfLines)
End With
With ThisWorkbook.VBProject.VBComponents("Feuil2").CodeModule
.AddFromString S
End With
End Sub
isabelle
Cependant, au moment de l'exécution du code j'ai cette erreur qui apparait :
erreur d'exécution 9 , l'indice n'appartient pas à la sélection
sur cette ligne => With
ThisWorkbook.VBProject.VBComponents(NomFeuille(2)).CodeModule
Je précise que j'exécute mon code dans le "ThisWorkbook".
Le but étant de recopier le code VBA d'une feuille déjà existante dans une
nouvelle qui est crée via un code vba placé dans un mondule standard.
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
LSteph
Bonjour,
Pas obligé de faire cela, s'agissant du code feuille, il est généralement lié aux procèdures évenementielles de la feuille et cela se gère aussi dans thisworkbook. Sélectionner Workbook dans déroulant Haut gauche du Thisworkbook. Puis voir dans ce dernier parmi les évenements de classeur ceux applicables à l'ensemble des feuilles dans le déroulant situé en haut à droite. Workbook_SheetChange, Workbook_SheetActivate... ??etc Voici très simple exemple qui réagit à toutes les feuilles sans besoin qu'elles mêmes contiennent de code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox "Je suis la feuille " & Sh.Name End Sub
Attention si un evennement est déjà gèré au niveau thisworkbook pou r l'ensemble des feuilles il faudra enlever ce code de la feuille elle même. Pour écarter certaines feuilles un if ou un select case, peuvent faire l'affaire,.
Cordialement.
-- lSteph
On 21 oct, 12:21, "Michel MTO" wrote:
Bonjour à toutes et à tous,
Je remercie, tout d'abord, Isabelle pour m'avoir donner ce code en date d u 15/10/09 :
bonjour Michel, il faudra modifier le nom de Feuil1 et Feuil2 selon le cas, Sub CopiDeCode() Dim S As String With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule S = .Lines(1, .CountOfLines) End With With ThisWorkbook.VBProject.VBComponents("Feuil2").CodeModule .AddFromString S End With End Sub isabelle
Cependant, au moment de l'exécution du code j'ai cette erreur qui appar ait :
erreur d'exécution 9 , l'indice n'appartient pas à la sélection sur cette ligne => With ThisWorkbook.VBProject.VBComponents(NomFeuille(2)).CodeModule
Je précise que j'exécute mon code dans le "ThisWorkbook".
Le but étant de recopier le code VBA d'une feuille déjà existante d ans une nouvelle qui est crée via un code vba placé dans un mondule standard.
Quelqu'un aurait-il une piste ?
Merci par avance
Michel Mto
Bonjour,
Pas obligé de faire cela, s'agissant du code feuille, il est
généralement lié aux procèdures évenementielles de la feuille et cela
se gère aussi dans thisworkbook. Sélectionner Workbook dans déroulant
Haut gauche du Thisworkbook. Puis voir dans ce dernier parmi les
évenements de classeur ceux applicables à l'ensemble des feuilles
dans
le déroulant situé en haut à droite. Workbook_SheetChange,
Workbook_SheetActivate... ??etc
Voici très simple exemple qui réagit à toutes les feuilles sans
besoin qu'elles mêmes contiennent de code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox "Je suis la feuille " & Sh.Name
End Sub
Attention si un evennement est déjà gèré au niveau thisworkbook pou r
l'ensemble des feuilles il faudra enlever ce code de la feuille elle
même.
Pour écarter certaines feuilles un if ou un select case, peuvent
faire
l'affaire,.
Cordialement.
--
lSteph
On 21 oct, 12:21, "Michel MTO" <comptabil...@olcoven.fr> wrote:
Bonjour à toutes et à tous,
Je remercie, tout d'abord, Isabelle pour m'avoir donner ce code en date d u
15/10/09 :
bonjour Michel,
il faudra modifier le nom de Feuil1 et Feuil2 selon le cas,
Sub CopiDeCode()
Dim S As String
With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule
S = .Lines(1, .CountOfLines)
End With
With ThisWorkbook.VBProject.VBComponents("Feuil2").CodeModule
.AddFromString S
End With
End Sub
isabelle
Cependant, au moment de l'exécution du code j'ai cette erreur qui appar ait :
erreur d'exécution 9 , l'indice n'appartient pas à la sélection
sur cette ligne => With
ThisWorkbook.VBProject.VBComponents(NomFeuille(2)).CodeModule
Je précise que j'exécute mon code dans le "ThisWorkbook".
Le but étant de recopier le code VBA d'une feuille déjà existante d ans une
nouvelle qui est crée via un code vba placé dans un mondule standard.
Pas obligé de faire cela, s'agissant du code feuille, il est généralement lié aux procèdures évenementielles de la feuille et cela se gère aussi dans thisworkbook. Sélectionner Workbook dans déroulant Haut gauche du Thisworkbook. Puis voir dans ce dernier parmi les évenements de classeur ceux applicables à l'ensemble des feuilles dans le déroulant situé en haut à droite. Workbook_SheetChange, Workbook_SheetActivate... ??etc Voici très simple exemple qui réagit à toutes les feuilles sans besoin qu'elles mêmes contiennent de code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox "Je suis la feuille " & Sh.Name End Sub
Attention si un evennement est déjà gèré au niveau thisworkbook pou r l'ensemble des feuilles il faudra enlever ce code de la feuille elle même. Pour écarter certaines feuilles un if ou un select case, peuvent faire l'affaire,.
Cordialement.
-- lSteph
On 21 oct, 12:21, "Michel MTO" wrote:
Bonjour à toutes et à tous,
Je remercie, tout d'abord, Isabelle pour m'avoir donner ce code en date d u 15/10/09 :
bonjour Michel, il faudra modifier le nom de Feuil1 et Feuil2 selon le cas, Sub CopiDeCode() Dim S As String With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule S = .Lines(1, .CountOfLines) End With With ThisWorkbook.VBProject.VBComponents("Feuil2").CodeModule .AddFromString S End With End Sub isabelle
Cependant, au moment de l'exécution du code j'ai cette erreur qui appar ait :
erreur d'exécution 9 , l'indice n'appartient pas à la sélection sur cette ligne => With ThisWorkbook.VBProject.VBComponents(NomFeuille(2)).CodeModule
Je précise que j'exécute mon code dans le "ThisWorkbook".
Le but étant de recopier le code VBA d'une feuille déjà existante d ans une nouvelle qui est crée via un code vba placé dans un mondule standard.
Quelqu'un aurait-il une piste ?
Merci par avance
Michel Mto
FFO
Salut Michel
As tu essayé de vérifier au niveau de : NomFeuille(2) celà doit être une variable (sinon il manque des guillemets ainsi : "NomFeuille(2)") qui doit faire référence à un nom d'Onglet Lors du Bug porte ta souris dessus pour vérifier cette donnée Vérifies la présence d'un onglet avec le nom de cette donnée Attention aux espaces et à la casse
Donne nous des nouvelles !!!!!
Salut Michel
As tu essayé de vérifier au niveau de : NomFeuille(2)
celà doit être une variable (sinon il manque des guillemets ainsi :
"NomFeuille(2)") qui doit faire référence à un nom d'Onglet
Lors du Bug porte ta souris dessus pour vérifier cette donnée
Vérifies la présence d'un onglet avec le nom de cette donnée
Attention aux espaces et à la casse
As tu essayé de vérifier au niveau de : NomFeuille(2) celà doit être une variable (sinon il manque des guillemets ainsi : "NomFeuille(2)") qui doit faire référence à un nom d'Onglet Lors du Bug porte ta souris dessus pour vérifier cette donnée Vérifies la présence d'un onglet avec le nom de cette donnée Attention aux espaces et à la casse
Donne nous des nouvelles !!!!!
Michel MTO
Merci pour ton temps, je suis rester sur la proposition de LSteph
Mais j'avais bien vérifier la variable me ramenait bien le nom de la feuille
Michel
Salut Michel
As tu essayé de vérifier au niveau de : NomFeuille(2) celà doit être une variable (sinon il manque des guillemets ainsi : "NomFeuille(2)") qui doit faire référence à un nom d'Onglet Lors du Bug porte ta souris dessus pour vérifier cette donnée Vérifies la présence d'un onglet avec le nom de cette donnée Attention aux espaces et à la casse
Donne nous des nouvelles !!!!!
Merci pour ton temps, je suis rester sur la proposition de LSteph
Mais j'avais bien vérifier la variable me ramenait bien le nom de la feuille
Michel
Salut Michel
As tu essayé de vérifier au niveau de : NomFeuille(2)
celà doit être une variable (sinon il manque des guillemets ainsi :
"NomFeuille(2)") qui doit faire référence à un nom d'Onglet
Lors du Bug porte ta souris dessus pour vérifier cette donnée
Vérifies la présence d'un onglet avec le nom de cette donnée
Attention aux espaces et à la casse
Merci pour ton temps, je suis rester sur la proposition de LSteph
Mais j'avais bien vérifier la variable me ramenait bien le nom de la feuille
Michel
Salut Michel
As tu essayé de vérifier au niveau de : NomFeuille(2) celà doit être une variable (sinon il manque des guillemets ainsi : "NomFeuille(2)") qui doit faire référence à un nom d'Onglet Lors du Bug porte ta souris dessus pour vérifier cette donnée Vérifies la présence d'un onglet avec le nom de cette donnée Attention aux espaces et à la casse
Donne nous des nouvelles !!!!!
Michel MTO
Merci LSteph Je ne savais pas que, les évènements feuille se géraientt également au niveau du ThisWorkbook.
Michel
"LSteph" a écrit dans le message de news: Bonjour,
Pas obligé de faire cela, s'agissant du code feuille, il est généralement lié aux procèdures évenementielles de la feuille et cela se gère aussi dans thisworkbook. Sélectionner Workbook dans déroulant Haut gauche du Thisworkbook. Puis voir dans ce dernier parmi les évenements de classeur ceux applicables à l'ensemble des feuilles dans le déroulant situé en haut à droite. Workbook_SheetChange, Workbook_SheetActivate... ??etc Voici très simple exemple qui réagit à toutes les feuilles sans besoin qu'elles mêmes contiennent de code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox "Je suis la feuille " & Sh.Name End Sub
Attention si un evennement est déjà gèré au niveau thisworkbook pour l'ensemble des feuilles il faudra enlever ce code de la feuille elle même. Pour écarter certaines feuilles un if ou un select case, peuvent faire l'affaire,.
Cordialement.
-- lSteph
On 21 oct, 12:21, "Michel MTO" wrote:
Bonjour à toutes et à tous,
Je remercie, tout d'abord, Isabelle pour m'avoir donner ce code en date du 15/10/09 :
bonjour Michel, il faudra modifier le nom de Feuil1 et Feuil2 selon le cas, Sub CopiDeCode() Dim S As String With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule S = .Lines(1, .CountOfLines) End With With ThisWorkbook.VBProject.VBComponents("Feuil2").CodeModule .AddFromString S End With End Sub isabelle
Cependant, au moment de l'exécution du code j'ai cette erreur qui apparait
:
erreur d'exécution 9 , l'indice n'appartient pas à la sélection sur cette ligne => With ThisWorkbook.VBProject.VBComponents(NomFeuille(2)).CodeModule
Je précise que j'exécute mon code dans le "ThisWorkbook".
Le but étant de recopier le code VBA d'une feuille déjà existante dans une nouvelle qui est crée via un code vba placé dans un mondule standard.
Quelqu'un aurait-il une piste ?
Merci par avance
Michel Mto
Merci LSteph
Je ne savais pas que, les évènements feuille se géraientt également au
niveau du ThisWorkbook.
Michel
"LSteph" <gmlsteph@gmail.com> a écrit dans le message de
news:59b46353-fcab-46b9-86e1-56ee8c5b9697@f10g2000vbl.googlegroups.com...
Bonjour,
Pas obligé de faire cela, s'agissant du code feuille, il est
généralement lié aux procèdures évenementielles de la feuille et cela
se gère aussi dans thisworkbook. Sélectionner Workbook dans déroulant
Haut gauche du Thisworkbook. Puis voir dans ce dernier parmi les
évenements de classeur ceux applicables à l'ensemble des feuilles
dans
le déroulant situé en haut à droite. Workbook_SheetChange,
Workbook_SheetActivate... ??etc
Voici très simple exemple qui réagit à toutes les feuilles sans
besoin qu'elles mêmes contiennent de code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox "Je suis la feuille " & Sh.Name
End Sub
Attention si un evennement est déjà gèré au niveau thisworkbook pour
l'ensemble des feuilles il faudra enlever ce code de la feuille elle
même.
Pour écarter certaines feuilles un if ou un select case, peuvent
faire
l'affaire,.
Cordialement.
--
lSteph
On 21 oct, 12:21, "Michel MTO" <comptabil...@olcoven.fr> wrote:
Bonjour à toutes et à tous,
Je remercie, tout d'abord, Isabelle pour m'avoir donner ce code en date du
15/10/09 :
bonjour Michel,
il faudra modifier le nom de Feuil1 et Feuil2 selon le cas,
Sub CopiDeCode()
Dim S As String
With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule
S = .Lines(1, .CountOfLines)
End With
With ThisWorkbook.VBProject.VBComponents("Feuil2").CodeModule
.AddFromString S
End With
End Sub
isabelle
Cependant, au moment de l'exécution du code j'ai cette erreur qui apparait
:
erreur d'exécution 9 , l'indice n'appartient pas à la sélection
sur cette ligne => With
ThisWorkbook.VBProject.VBComponents(NomFeuille(2)).CodeModule
Je précise que j'exécute mon code dans le "ThisWorkbook".
Le but étant de recopier le code VBA d'une feuille déjà existante dans une
nouvelle qui est crée via un code vba placé dans un mondule standard.
Merci LSteph Je ne savais pas que, les évènements feuille se géraientt également au niveau du ThisWorkbook.
Michel
"LSteph" a écrit dans le message de news: Bonjour,
Pas obligé de faire cela, s'agissant du code feuille, il est généralement lié aux procèdures évenementielles de la feuille et cela se gère aussi dans thisworkbook. Sélectionner Workbook dans déroulant Haut gauche du Thisworkbook. Puis voir dans ce dernier parmi les évenements de classeur ceux applicables à l'ensemble des feuilles dans le déroulant situé en haut à droite. Workbook_SheetChange, Workbook_SheetActivate... ??etc Voici très simple exemple qui réagit à toutes les feuilles sans besoin qu'elles mêmes contiennent de code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox "Je suis la feuille " & Sh.Name End Sub
Attention si un evennement est déjà gèré au niveau thisworkbook pour l'ensemble des feuilles il faudra enlever ce code de la feuille elle même. Pour écarter certaines feuilles un if ou un select case, peuvent faire l'affaire,.
Cordialement.
-- lSteph
On 21 oct, 12:21, "Michel MTO" wrote:
Bonjour à toutes et à tous,
Je remercie, tout d'abord, Isabelle pour m'avoir donner ce code en date du 15/10/09 :
bonjour Michel, il faudra modifier le nom de Feuil1 et Feuil2 selon le cas, Sub CopiDeCode() Dim S As String With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule S = .Lines(1, .CountOfLines) End With With ThisWorkbook.VBProject.VBComponents("Feuil2").CodeModule .AddFromString S End With End Sub isabelle
Cependant, au moment de l'exécution du code j'ai cette erreur qui apparait
:
erreur d'exécution 9 , l'indice n'appartient pas à la sélection sur cette ligne => With ThisWorkbook.VBProject.VBComponents(NomFeuille(2)).CodeModule
Je précise que j'exécute mon code dans le "ThisWorkbook".
Le but étant de recopier le code VBA d'une feuille déjà existante dans une nouvelle qui est crée via un code vba placé dans un mondule standard.