OVH Cloud OVH Cloud

Feuilleton macro déclenchée par...La suite.

4 réponses
Avatar
Old Jack
Bonjour,

Vos aides ultra-rapides et efficaces m'ont permis d'avancer, mais j'ai
un nouvel obstacle:

J'utilise cette macro (qui se déclenche quand on modifie le contenu
d'une cellule du classeur A courant) pour ...charger un autre classeur
B et y copier la cellule modifiée dedans. Mais voila : la macro se
déclenche de nouveau puisque le contenu du classeur B actif est
modifié!
Comment puis-je neutraliser cette macro le temps de modifier le
classeur B et de revenir au classeur A, et la remettre à nouveau en
marche au moindre changement du classeur A ? (faudrait-il que je lance
une autre session d'excel ?)

Je sais, je deviens casse-pied, mais...
En tout cas, merci d'avance pour votre aide.

Voici le code (qui boucle, hélas), placé dans 'Thisworkbook' :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Dim col, lig
col = Target.Column
lig = Target.Row
celnom = Cells(1, col)
cel = Cells(lig, col)
fich = "D:\Docus\B2i\" + celnom + ".xls"
Workbooks.Open Filename:=fich
Worksheets(1).Cells(lig, 2) = cel
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

--
cordialement,
Old Jack (http://scolamath.free.fr)

4 réponses

Avatar
RaMA
remplace
Worksheets(1).Cells(lig, 2) = cel
par
ActiveWorkbook.Worksheets(1).Cells(lig, 2) = cel
RaMa
--
.
"Old Jack" a écrit dans le message de
news:
Bonjour,

Vos aides ultra-rapides et efficaces m'ont permis d'avancer, mais j'ai
un nouvel obstacle:

J'utilise cette macro (qui se déclenche quand on modifie le contenu
d'une cellule du classeur A courant) pour ...charger un autre classeur
B et y copier la cellule modifiée dedans. Mais voila : la macro se
déclenche de nouveau puisque le contenu du classeur B actif est
modifié!
Comment puis-je neutraliser cette macro le temps de modifier le
classeur B et de revenir au classeur A, et la remettre à nouveau en
marche au moindre changement du classeur A ? (faudrait-il que je lance
une autre session d'excel ?)

Je sais, je deviens casse-pied, mais...
En tout cas, merci d'avance pour votre aide.

Voici le code (qui boucle, hélas), placé dans 'Thisworkbook' :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Dim col, lig
col = Target.Column
lig = Target.Row
celnom = Cells(1, col)
cel = Cells(lig, col)
fich = "D:DocusB2i" + celnom + ".xls"
Workbooks.Open Filename:=fich
Worksheets(1).Cells(lig, 2) = cel
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

--
cordialement,
Old Jack (http://scolamath.free.fr)



Avatar
Old Jack
RaMA a utilisé son clavier pour écrire :
ActiveWorkbook.Worksheets(1).Cells(lig, 2) = cel


Merci !
Mais là, je ne comprend pas pourquoi ça marche.... :-(

--
cordialement,
Old Jack (http://scolamath.free.fr)

Avatar
RaMA
Bonjour

Si tu ne qualifies pas l'objet, worksheet(1) sera par défaut le classeur
appelant
ActiveWorkbook précise l'objet

RaMa
--
.
"Old Jack" a écrit dans le message de
news:
RaMA a utilisé son clavier pour écrire :
ActiveWorkbook.Worksheets(1).Cells(lig, 2) = cel


Merci !
Mais là, je ne comprend pas pourquoi ça marche.... :-(

--
cordialement,
Old Jack (http://scolamath.free.fr)




Avatar
Old Jack
RaMA avait soumis l'idée :
Bonjour

Si tu ne qualifies pas l'objet, worksheet(1) sera par défaut le classeur
appelant
ActiveWorkbook précise l'objet

RaMa


Merci , Rama ! Maintenant, j'ai compris. ^^

--
cordialement,
Old Jack (http://scolamath.free.fr)