Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Bonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" a écrit dans le message de
news:
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Bonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" <dominique.mirou@socgen.com> a écrit dans le message de
news:1157628942.368769.254080@m73g2000cwd.googlegroups.com...
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Bonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" a écrit dans le message de
news:
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Merci à tous de vous être penchés sur mon cas, et surtout à Mic hel
qui m'a donné la solution !
Effectivement, je pourrais activer le classeur en question, mais je ne
veux pas le faire car je suis dans un UserForm, et je fais des
allers-retour entre plusieurs classeurs, et pour la propreté de
l'affichage, je ne préfère pas abuser des ScreenUpdating = True o u
False...
Je ne peux pas utiliser Range("Q2:V2") car le numéro de la ligne est
variable.
En fait, dans mon code, j'ai, après correction :
Range(.Cells(" & i + 1 & ", 17), .Cells(" & i + 1 & ",
22)).ClearContents
Et ça marche !
Merci encore.
DoMiBonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" a écrit dans le message de
news:
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Merci à tous de vous être penchés sur mon cas, et surtout à Mic hel
qui m'a donné la solution !
Effectivement, je pourrais activer le classeur en question, mais je ne
veux pas le faire car je suis dans un UserForm, et je fais des
allers-retour entre plusieurs classeurs, et pour la propreté de
l'affichage, je ne préfère pas abuser des ScreenUpdating = True o u
False...
Je ne peux pas utiliser Range("Q2:V2") car le numéro de la ligne est
variable.
En fait, dans mon code, j'ai, après correction :
Range(.Cells(" & i + 1 & ", 17), .Cells(" & i + 1 & ",
22)).ClearContents
Et ça marche !
Merci encore.
DoMi
Bonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" <dominique.mirou@socgen.com> a écrit dans le message de
news:1157628942.368769.254080@m73g2000cwd.googlegroups.com...
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Merci à tous de vous être penchés sur mon cas, et surtout à Mic hel
qui m'a donné la solution !
Effectivement, je pourrais activer le classeur en question, mais je ne
veux pas le faire car je suis dans un UserForm, et je fais des
allers-retour entre plusieurs classeurs, et pour la propreté de
l'affichage, je ne préfère pas abuser des ScreenUpdating = True o u
False...
Je ne peux pas utiliser Range("Q2:V2") car le numéro de la ligne est
variable.
En fait, dans mon code, j'ai, après correction :
Range(.Cells(" & i + 1 & ", 17), .Cells(" & i + 1 & ",
22)).ClearContents
Et ça marche !
Merci encore.
DoMiBonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" a écrit dans le message de
news:
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Workbooks("Monfichier.xls").Sheets("Feuil1").Range("Q2:V2")
= Erreur 438
With Workbooks("Monfichier.xls").Sheets("Feuil1")
Range(.Cells(2, 17), .Cells(2, 22)).ClearContents
End With
Efface les cellules dans le fichier en cours
Bonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" a écrit dans le message de
news:
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Workbooks("Monfichier.xls").Sheets("Feuil1").Range("Q2:V2")
= Erreur 438
With Workbooks("Monfichier.xls").Sheets("Feuil1")
Range(.Cells(2, 17), .Cells(2, 22)).ClearContents
End With
Efface les cellules dans le fichier en cours
Bonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" <dominique.mirou@socgen.com> a écrit dans le message de
news:1157628942.368769.254080@m73g2000cwd.googlegroups.com...
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
Workbooks("Monfichier.xls").Sheets("Feuil1").Range("Q2:V2")
= Erreur 438
With Workbooks("Monfichier.xls").Sheets("Feuil1")
Range(.Cells(2, 17), .Cells(2, 22)).ClearContents
End With
Efface les cellules dans le fichier en cours
Bonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" a écrit dans le message de
news:
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
De rien Domi ;-)))
Mais tu te compliques la vie avec tes concaténations :
Range(.Cells(i + 1, 17), .Cells(i + 1, 22)).ClearContents
devrait suffire.
Par ailleurs pourquoi des allers-retours entre plusieurs classeurs ?
A part le cas où il est nécessaire d'ouvrir un classeur (ou +) pendan t le traitement, il est en principe inutile de
modifier le classeur actif. Il suffit d'utiliser des With ou une variable objet par classeur. Les .Select et .Activate,
le plus souvent ne servent qu'à ralentir les traitements.
J'espère ne pas t'avoir choquée par ces remarques un peu HS.Merci à tous de vous être penchés sur mon cas, et surtout à Mic hel
qui m'a donné la solution !
Effectivement, je pourrais activer le classeur en question, mais je ne
veux pas le faire car je suis dans un UserForm, et je fais des
allers-retour entre plusieurs classeurs, et pour la propreté de
l'affichage, je ne préfère pas abuser des ScreenUpdating = True ou
False...
Je ne peux pas utiliser Range("Q2:V2") car le numéro de la ligne est
variable.
En fait, dans mon code, j'ai, après correction :
Range(.Cells(" & i + 1 & ", 17), .Cells(" & i + 1 & ",
22)).ClearContents
Et ça marche !
Merci encore.
DoMiBonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" a écrit dans le message de
news:
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
--
Cordialement,
Michel Gaboly
www.gaboly.com
De rien Domi ;-)))
Mais tu te compliques la vie avec tes concaténations :
Range(.Cells(i + 1, 17), .Cells(i + 1, 22)).ClearContents
devrait suffire.
Par ailleurs pourquoi des allers-retours entre plusieurs classeurs ?
A part le cas où il est nécessaire d'ouvrir un classeur (ou +) pendan t le traitement, il est en principe inutile de
modifier le classeur actif. Il suffit d'utiliser des With ou une variable objet par classeur. Les .Select et .Activate,
le plus souvent ne servent qu'à ralentir les traitements.
J'espère ne pas t'avoir choquée par ces remarques un peu HS.
Merci à tous de vous être penchés sur mon cas, et surtout à Mic hel
qui m'a donné la solution !
Effectivement, je pourrais activer le classeur en question, mais je ne
veux pas le faire car je suis dans un UserForm, et je fais des
allers-retour entre plusieurs classeurs, et pour la propreté de
l'affichage, je ne préfère pas abuser des ScreenUpdating = True ou
False...
Je ne peux pas utiliser Range("Q2:V2") car le numéro de la ligne est
variable.
En fait, dans mon code, j'ai, après correction :
Range(.Cells(" & i + 1 & ", 17), .Cells(" & i + 1 & ",
22)).ClearContents
Et ça marche !
Merci encore.
DoMi
Bonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" <dominique.mirou@socgen.com> a écrit dans le message de
news:1157628942.368769.254080@m73g2000cwd.googlegroups.com...
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
--
Cordialement,
Michel Gaboly
www.gaboly.com
De rien Domi ;-)))
Mais tu te compliques la vie avec tes concaténations :
Range(.Cells(i + 1, 17), .Cells(i + 1, 22)).ClearContents
devrait suffire.
Par ailleurs pourquoi des allers-retours entre plusieurs classeurs ?
A part le cas où il est nécessaire d'ouvrir un classeur (ou +) pendan t le traitement, il est en principe inutile de
modifier le classeur actif. Il suffit d'utiliser des With ou une variable objet par classeur. Les .Select et .Activate,
le plus souvent ne servent qu'à ralentir les traitements.
J'espère ne pas t'avoir choquée par ces remarques un peu HS.Merci à tous de vous être penchés sur mon cas, et surtout à Mic hel
qui m'a donné la solution !
Effectivement, je pourrais activer le classeur en question, mais je ne
veux pas le faire car je suis dans un UserForm, et je fais des
allers-retour entre plusieurs classeurs, et pour la propreté de
l'affichage, je ne préfère pas abuser des ScreenUpdating = True ou
False...
Je ne peux pas utiliser Range("Q2:V2") car le numéro de la ligne est
variable.
En fait, dans mon code, j'ai, après correction :
Range(.Cells(" & i + 1 & ", 17), .Cells(" & i + 1 & ",
22)).ClearContents
Et ça marche !
Merci encore.
DoMiBonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" a écrit dans le message de
news:
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
--
Cordialement,
Michel Gaboly
www.gaboly.com
Je ne suis pas choqué, je suis toujours ouvert à tout ce qui peut m e
faire progresser, et je sais que je trouve ici ce qu'il faut. La
recherche par mot-clé est bien pratique. Quand je pose des questions,
c'est que je n'ai rien trouvé qui me satisfasse...
A part ça, pourquoi ces concaténations? C'est que c'est du code qui
génère du code.
Les 3 lignes, en fait, ça fait:
Code = Code & vbTab & vbTab & vbTab & "With
Workbooks(FicMvts).Sheets(""Feuil1"")" & vbCrLf
Code = Code & vbTab & vbTab & vbTab & vbTab & "Range(.Cells(" &
i + 1 & ", 17), .Cells(" & i + 1 & ", 22)).ClearContents" & vbCrLf
Code = Code & vbTab & vbTab & vbTab & "End With" & vbCrLf
Pas facile à relire...
DoMiDe rien Domi ;-)))
Mais tu te compliques la vie avec tes concaténations :
Range(.Cells(i + 1, 17), .Cells(i + 1, 22)).ClearContents
devrait suffire.
Par ailleurs pourquoi des allers-retours entre plusieurs classeurs ?
A part le cas où il est nécessaire d'ouvrir un classeur (ou +) pen dant le traitement, il est en principe inutile de
modifier le classeur actif. Il suffit d'utiliser des With ou une varia ble objet par classeur. Les .Select et .Activate,
le plus souvent ne servent qu'à ralentir les traitements.
J'espère ne pas t'avoir choquée par ces remarques un peu HS.Merci à tous de vous être penchés sur mon cas, et surtout à M ichel
qui m'a donné la solution !
Effectivement, je pourrais activer le classeur en question, mais je n e
veux pas le faire car je suis dans un UserForm, et je fais des
allers-retour entre plusieurs classeurs, et pour la propreté de
l'affichage, je ne préfère pas abuser des ScreenUpdating = True ou
False...
Je ne peux pas utiliser Range("Q2:V2") car le numéro de la ligne e st
variable.
En fait, dans mon code, j'ai, après correction :
Range(.Cells(" & i + 1 & ", 17), .Cells(" & i + 1 & ",
22)).ClearContents
Et ça marche !
Merci encore.
DoMiBonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" a écrit dans le message de
news:
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
--
Cordialement,
Michel Gaboly
www.gaboly.com
Je ne suis pas choqué, je suis toujours ouvert à tout ce qui peut m e
faire progresser, et je sais que je trouve ici ce qu'il faut. La
recherche par mot-clé est bien pratique. Quand je pose des questions,
c'est que je n'ai rien trouvé qui me satisfasse...
A part ça, pourquoi ces concaténations? C'est que c'est du code qui
génère du code.
Les 3 lignes, en fait, ça fait:
Code = Code & vbTab & vbTab & vbTab & "With
Workbooks(FicMvts).Sheets(""Feuil1"")" & vbCrLf
Code = Code & vbTab & vbTab & vbTab & vbTab & "Range(.Cells(" &
i + 1 & ", 17), .Cells(" & i + 1 & ", 22)).ClearContents" & vbCrLf
Code = Code & vbTab & vbTab & vbTab & "End With" & vbCrLf
Pas facile à relire...
DoMi
De rien Domi ;-)))
Mais tu te compliques la vie avec tes concaténations :
Range(.Cells(i + 1, 17), .Cells(i + 1, 22)).ClearContents
devrait suffire.
Par ailleurs pourquoi des allers-retours entre plusieurs classeurs ?
A part le cas où il est nécessaire d'ouvrir un classeur (ou +) pen dant le traitement, il est en principe inutile de
modifier le classeur actif. Il suffit d'utiliser des With ou une varia ble objet par classeur. Les .Select et .Activate,
le plus souvent ne servent qu'à ralentir les traitements.
J'espère ne pas t'avoir choquée par ces remarques un peu HS.
Merci à tous de vous être penchés sur mon cas, et surtout à M ichel
qui m'a donné la solution !
Effectivement, je pourrais activer le classeur en question, mais je n e
veux pas le faire car je suis dans un UserForm, et je fais des
allers-retour entre plusieurs classeurs, et pour la propreté de
l'affichage, je ne préfère pas abuser des ScreenUpdating = True ou
False...
Je ne peux pas utiliser Range("Q2:V2") car le numéro de la ligne e st
variable.
En fait, dans mon code, j'ai, après correction :
Range(.Cells(" & i + 1 & ", 17), .Cells(" & i + 1 & ",
22)).ClearContents
Et ça marche !
Merci encore.
DoMi
Bonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" <dominique.mirou@socgen.com> a écrit dans le message de
news:1157628942.368769.254080@m73g2000cwd.googlegroups.com...
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
--
Cordialement,
Michel Gaboly
www.gaboly.com
Je ne suis pas choqué, je suis toujours ouvert à tout ce qui peut m e
faire progresser, et je sais que je trouve ici ce qu'il faut. La
recherche par mot-clé est bien pratique. Quand je pose des questions,
c'est que je n'ai rien trouvé qui me satisfasse...
A part ça, pourquoi ces concaténations? C'est que c'est du code qui
génère du code.
Les 3 lignes, en fait, ça fait:
Code = Code & vbTab & vbTab & vbTab & "With
Workbooks(FicMvts).Sheets(""Feuil1"")" & vbCrLf
Code = Code & vbTab & vbTab & vbTab & vbTab & "Range(.Cells(" &
i + 1 & ", 17), .Cells(" & i + 1 & ", 22)).ClearContents" & vbCrLf
Code = Code & vbTab & vbTab & vbTab & "End With" & vbCrLf
Pas facile à relire...
DoMiDe rien Domi ;-)))
Mais tu te compliques la vie avec tes concaténations :
Range(.Cells(i + 1, 17), .Cells(i + 1, 22)).ClearContents
devrait suffire.
Par ailleurs pourquoi des allers-retours entre plusieurs classeurs ?
A part le cas où il est nécessaire d'ouvrir un classeur (ou +) pen dant le traitement, il est en principe inutile de
modifier le classeur actif. Il suffit d'utiliser des With ou une varia ble objet par classeur. Les .Select et .Activate,
le plus souvent ne servent qu'à ralentir les traitements.
J'espère ne pas t'avoir choquée par ces remarques un peu HS.Merci à tous de vous être penchés sur mon cas, et surtout à M ichel
qui m'a donné la solution !
Effectivement, je pourrais activer le classeur en question, mais je n e
veux pas le faire car je suis dans un UserForm, et je fais des
allers-retour entre plusieurs classeurs, et pour la propreté de
l'affichage, je ne préfère pas abuser des ScreenUpdating = True ou
False...
Je ne peux pas utiliser Range("Q2:V2") car le numéro de la ligne e st
variable.
En fait, dans mon code, j'ai, après correction :
Range(.Cells(" & i + 1 & ", 17), .Cells(" & i + 1 & ",
22)).ClearContents
Et ça marche !
Merci encore.
DoMiBonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" a écrit dans le message de
news:
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
--
Cordialement,
Michel Gaboly
www.gaboly.com
Re,
Même dans ce cas,
Code = Code & vbTab & vbTab & vbTab & vbTab & "Range(.Cells(i + 1, 17), .Cells(i + 1 , 22)).ClearContents" & vbCrLfJe ne suis pas choqué, je suis toujours ouvert à tout ce qui peut me
faire progresser, et je sais que je trouve ici ce qu'il faut. La
recherche par mot-clé est bien pratique. Quand je pose des questions,
c'est que je n'ai rien trouvé qui me satisfasse...
A part ça, pourquoi ces concaténations? C'est que c'est du code qui
génère du code.
Les 3 lignes, en fait, ça fait:
Code = Code & vbTab & vbTab & vbTab & "With
Workbooks(FicMvts).Sheets(""Feuil1"")" & vbCrLf
Code = Code & vbTab & vbTab & vbTab & vbTab & "Range(.Cells(" &
i + 1 & ", 17), .Cells(" & i + 1 & ", 22)).ClearContents" & vbCrLf
Code = Code & vbTab & vbTab & vbTab & "End With" & vbCrLf
Pas facile à relire...
DoMiDe rien Domi ;-)))
Mais tu te compliques la vie avec tes concaténations :
Range(.Cells(i + 1, 17), .Cells(i + 1, 22)).ClearContents
devrait suffire.
Par ailleurs pourquoi des allers-retours entre plusieurs classeurs ?
A part le cas où il est nécessaire d'ouvrir un classeur (ou +) pen dant le traitement, il est en principe inutile de
modifier le classeur actif. Il suffit d'utiliser des With ou une varia ble objet par classeur. Les .Select et .Activate,
le plus souvent ne servent qu'à ralentir les traitements.
J'espère ne pas t'avoir choquée par ces remarques un peu HS.Merci à tous de vous être penchés sur mon cas, et surtout à M ichel
qui m'a donné la solution !
Effectivement, je pourrais activer le classeur en question, mais je ne
veux pas le faire car je suis dans un UserForm, et je fais des
allers-retour entre plusieurs classeurs, et pour la propreté de
l'affichage, je ne préfère pas abuser des ScreenUpdating = True ou
False...
Je ne peux pas utiliser Range("Q2:V2") car le numéro de la ligne e st
variable.
En fait, dans mon code, j'ai, après correction :
Range(.Cells(" & i + 1 & ", 17), .Cells(" & i + 1 & ",
22)).ClearContents
Et ça marche !
Merci encore.
DoMiBonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" a écrit dans le message de
news:
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
--
Cordialement,
Michel Gaboly
www.gaboly.com
--
Cordialement,
Michel Gaboly
www.gaboly.com
Re,
Même dans ce cas,
Code = Code & vbTab & vbTab & vbTab & vbTab & "Range(.Cells(i + 1, 17), .Cells(i + 1 , 22)).ClearContents" & vbCrLf
Je ne suis pas choqué, je suis toujours ouvert à tout ce qui peut me
faire progresser, et je sais que je trouve ici ce qu'il faut. La
recherche par mot-clé est bien pratique. Quand je pose des questions,
c'est que je n'ai rien trouvé qui me satisfasse...
A part ça, pourquoi ces concaténations? C'est que c'est du code qui
génère du code.
Les 3 lignes, en fait, ça fait:
Code = Code & vbTab & vbTab & vbTab & "With
Workbooks(FicMvts).Sheets(""Feuil1"")" & vbCrLf
Code = Code & vbTab & vbTab & vbTab & vbTab & "Range(.Cells(" &
i + 1 & ", 17), .Cells(" & i + 1 & ", 22)).ClearContents" & vbCrLf
Code = Code & vbTab & vbTab & vbTab & "End With" & vbCrLf
Pas facile à relire...
DoMi
De rien Domi ;-)))
Mais tu te compliques la vie avec tes concaténations :
Range(.Cells(i + 1, 17), .Cells(i + 1, 22)).ClearContents
devrait suffire.
Par ailleurs pourquoi des allers-retours entre plusieurs classeurs ?
A part le cas où il est nécessaire d'ouvrir un classeur (ou +) pen dant le traitement, il est en principe inutile de
modifier le classeur actif. Il suffit d'utiliser des With ou une varia ble objet par classeur. Les .Select et .Activate,
le plus souvent ne servent qu'à ralentir les traitements.
J'espère ne pas t'avoir choquée par ces remarques un peu HS.
Merci à tous de vous être penchés sur mon cas, et surtout à M ichel
qui m'a donné la solution !
Effectivement, je pourrais activer le classeur en question, mais je ne
veux pas le faire car je suis dans un UserForm, et je fais des
allers-retour entre plusieurs classeurs, et pour la propreté de
l'affichage, je ne préfère pas abuser des ScreenUpdating = True ou
False...
Je ne peux pas utiliser Range("Q2:V2") car le numéro de la ligne e st
variable.
En fait, dans mon code, j'ai, après correction :
Range(.Cells(" & i + 1 & ", 17), .Cells(" & i + 1 & ",
22)).ClearContents
Et ça marche !
Merci encore.
DoMi
Bonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" <dominique.mirou@socgen.com> a écrit dans le message de
news:1157628942.368769.254080@m73g2000cwd.googlegroups.com...
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
--
Cordialement,
Michel Gaboly
www.gaboly.com
--
Cordialement,
Michel Gaboly
www.gaboly.com
Re,
Même dans ce cas,
Code = Code & vbTab & vbTab & vbTab & vbTab & "Range(.Cells(i + 1, 17), .Cells(i + 1 , 22)).ClearContents" & vbCrLfJe ne suis pas choqué, je suis toujours ouvert à tout ce qui peut me
faire progresser, et je sais que je trouve ici ce qu'il faut. La
recherche par mot-clé est bien pratique. Quand je pose des questions,
c'est que je n'ai rien trouvé qui me satisfasse...
A part ça, pourquoi ces concaténations? C'est que c'est du code qui
génère du code.
Les 3 lignes, en fait, ça fait:
Code = Code & vbTab & vbTab & vbTab & "With
Workbooks(FicMvts).Sheets(""Feuil1"")" & vbCrLf
Code = Code & vbTab & vbTab & vbTab & vbTab & "Range(.Cells(" &
i + 1 & ", 17), .Cells(" & i + 1 & ", 22)).ClearContents" & vbCrLf
Code = Code & vbTab & vbTab & vbTab & "End With" & vbCrLf
Pas facile à relire...
DoMiDe rien Domi ;-)))
Mais tu te compliques la vie avec tes concaténations :
Range(.Cells(i + 1, 17), .Cells(i + 1, 22)).ClearContents
devrait suffire.
Par ailleurs pourquoi des allers-retours entre plusieurs classeurs ?
A part le cas où il est nécessaire d'ouvrir un classeur (ou +) pen dant le traitement, il est en principe inutile de
modifier le classeur actif. Il suffit d'utiliser des With ou une varia ble objet par classeur. Les .Select et .Activate,
le plus souvent ne servent qu'à ralentir les traitements.
J'espère ne pas t'avoir choquée par ces remarques un peu HS.Merci à tous de vous être penchés sur mon cas, et surtout à M ichel
qui m'a donné la solution !
Effectivement, je pourrais activer le classeur en question, mais je ne
veux pas le faire car je suis dans un UserForm, et je fais des
allers-retour entre plusieurs classeurs, et pour la propreté de
l'affichage, je ne préfère pas abuser des ScreenUpdating = True ou
False...
Je ne peux pas utiliser Range("Q2:V2") car le numéro de la ligne e st
variable.
En fait, dans mon code, j'ai, après correction :
Range(.Cells(" & i + 1 & ", 17), .Cells(" & i + 1 & ",
22)).ClearContents
Et ça marche !
Merci encore.
DoMiBonjour,
Peut-être que:
'----------
Sub jj()
Application.ScreenUpdating = False
nom = ActiveWorkbook.Name
Windows("Monfichier.xls").Activate
[Feuil1!q2:v2].ClearContents
Windows(nom).Activate
End Sub
'-------
Ps: le classeur "Monfichier.xls" doit être enregistré
Salutations
JJ
"DoMi" a écrit dans le message de
news:
Bonjour,
Je cherche à effacer une plage de cellules dans un classeur ouvert
mais non actif.
L'instruction:
Workbooks("Monfichier.xls").Sheets("Feuil1").Range(Cells(2, 17),
Cells(2, 22)).Value = ""
génère une "Erreur définie par l'application ou par l'objet"
Pourquoi ?
Merci pour votre aide
DoMi
--
Cordialement,
Michel Gaboly
www.gaboly.com
--
Cordialement,
Michel Gaboly
www.gaboly.com