bonjour;
j'aimerais vous soumettre deux questions concernant la variable
Target...
J'execute certaines proc=E9dures =E0 partir de la proc=E9dure principale :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
tout d'abord, j'en ai notamment une qui me permet de recopier dans les
cellules Ei la concat=E9nation de Ai & Bi.
Ca marche tr=E8s bien sauf dans le cas o=F9 l'utilisateur utilise la
fonction "glisser-recoppier" (je sais pas quel nom elle a mais en
s=E9lectionnant la cellule et en faisant glisser, le contenu de la
cellule est recopi=E9 su X-lignes (et incr=E9ment=E9). Bref, dans ce cas,
Ei reste vide...
y a-t-il un moyen de "forcer" le SheetChange ?
la seconde que j'utilise contient comme suit : (toujours dans
Workbook_SheetChange)
If Target =3D "" Then ThisWorkbook.BuiltinDocumentProperties.Item(5)
=3D ""
L'ennui c'est que si par exemple l'utilisateur efface plusieurs
cellules =E0 la fois, mon programme plante.
Y a-t-il un moyen d'=E9viter cela, ou est-ce que je suis oblig=E9e de
tester directement la ou les cellules dans le conenu pourrait
m'int=E9resser Range("A1:C1").text =3D "" m=EAme si c'est effectivement
A1:C1 qui ont =E9t=E9 effac=E9s. (idem dans le cas des cellules
fusionn=E9s)
Merci beaucoup par avance de votre aide....
C=E9line
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
Michel Gaboly
Bonjour Céline
Parcours chaque cellule de Target dans une boucle :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Exce l.Range) Dim c As Range For Each c In Target if c = "" then ... Next End Sub
ou pour accélérer le traitement et réduire le nombre de passages da ns la boucle, lorsque Target contient de nombreuses cellules, et que seule une plage réduite t'intéresse :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Exce l.Range) Dim c As Range If Not Intersect(Target, Sh.Range("A1:C1")) Is Nothing Then For Each c In Intersect(Target, Sh.Range("A1:C1")) If c = "" Then ... Next End If End Sub
bonjour; j'aimerais vous soumettre deux questions concernant la variable Target...
J'execute certaines procédures à partir de la procédure principal e :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
tout d'abord, j'en ai notamment une qui me permet de recopier dans les cellules Ei la concaténation de Ai & Bi. Ca marche très bien sauf dans le cas où l'utilisateur utilise la fonction "glisser-recoppier" (je sais pas quel nom elle a mais en sélectionnant la cellule et en faisant glisser, le contenu de la cellule est recopié su X-lignes (et incrémenté). Bref, dans ce ca s, Ei reste vide... y a-t-il un moyen de "forcer" le SheetChange ?
la seconde que j'utilise contient comme suit : (toujours dans Workbook_SheetChange) If Target = "" Then ThisWorkbook.BuiltinDocumentProperties.Item( 5) = "" L'ennui c'est que si par exemple l'utilisateur efface plusieurs cellules à la fois, mon programme plante.
Y a-t-il un moyen d'éviter cela, ou est-ce que je suis obligée de tester directement la ou les cellules dans le conenu pourrait m'intéresser Range("A1:C1").text = "" même si c'est effectivement A1:C1 qui ont été effacés. (idem dans le cas des cellules fusionnés)
Merci beaucoup par avance de votre aide.... Céline
-- Cordialement,
Michel Gaboly www.gaboly.com
Bonjour Céline
Parcours chaque cellule de Target dans une boucle :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Exce l.Range)
Dim c As Range
For Each c In Target
if c = "" then ...
Next
End Sub
ou pour accélérer le traitement et réduire le nombre de passages da ns la boucle, lorsque Target contient de nombreuses
cellules, et que seule une plage réduite t'intéresse :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Exce l.Range)
Dim c As Range
If Not Intersect(Target, Sh.Range("A1:C1")) Is Nothing Then
For Each c In Intersect(Target, Sh.Range("A1:C1"))
If c = "" Then ...
Next
End If
End Sub
bonjour;
j'aimerais vous soumettre deux questions concernant la variable
Target...
J'execute certaines procédures à partir de la procédure principal e :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
tout d'abord, j'en ai notamment une qui me permet de recopier dans les
cellules Ei la concaténation de Ai & Bi.
Ca marche très bien sauf dans le cas où l'utilisateur utilise la
fonction "glisser-recoppier" (je sais pas quel nom elle a mais en
sélectionnant la cellule et en faisant glisser, le contenu de la
cellule est recopié su X-lignes (et incrémenté). Bref, dans ce ca s,
Ei reste vide...
y a-t-il un moyen de "forcer" le SheetChange ?
la seconde que j'utilise contient comme suit : (toujours dans
Workbook_SheetChange)
If Target = "" Then ThisWorkbook.BuiltinDocumentProperties.Item( 5)
= ""
L'ennui c'est que si par exemple l'utilisateur efface plusieurs
cellules à la fois, mon programme plante.
Y a-t-il un moyen d'éviter cela, ou est-ce que je suis obligée de
tester directement la ou les cellules dans le conenu pourrait
m'intéresser Range("A1:C1").text = "" même si c'est effectivement
A1:C1 qui ont été effacés. (idem dans le cas des cellules
fusionnés)
Merci beaucoup par avance de votre aide....
Céline
Parcours chaque cellule de Target dans une boucle :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Exce l.Range) Dim c As Range For Each c In Target if c = "" then ... Next End Sub
ou pour accélérer le traitement et réduire le nombre de passages da ns la boucle, lorsque Target contient de nombreuses cellules, et que seule une plage réduite t'intéresse :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Exce l.Range) Dim c As Range If Not Intersect(Target, Sh.Range("A1:C1")) Is Nothing Then For Each c In Intersect(Target, Sh.Range("A1:C1")) If c = "" Then ... Next End If End Sub
bonjour; j'aimerais vous soumettre deux questions concernant la variable Target...
J'execute certaines procédures à partir de la procédure principal e :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
tout d'abord, j'en ai notamment une qui me permet de recopier dans les cellules Ei la concaténation de Ai & Bi. Ca marche très bien sauf dans le cas où l'utilisateur utilise la fonction "glisser-recoppier" (je sais pas quel nom elle a mais en sélectionnant la cellule et en faisant glisser, le contenu de la cellule est recopié su X-lignes (et incrémenté). Bref, dans ce ca s, Ei reste vide... y a-t-il un moyen de "forcer" le SheetChange ?
la seconde que j'utilise contient comme suit : (toujours dans Workbook_SheetChange) If Target = "" Then ThisWorkbook.BuiltinDocumentProperties.Item( 5) = "" L'ennui c'est que si par exemple l'utilisateur efface plusieurs cellules à la fois, mon programme plante.
Y a-t-il un moyen d'éviter cela, ou est-ce que je suis obligée de tester directement la ou les cellules dans le conenu pourrait m'intéresser Range("A1:C1").text = "" même si c'est effectivement A1:C1 qui ont été effacés. (idem dans le cas des cellules fusionnés)
Merci beaucoup par avance de votre aide.... Céline
-- Cordialement,
Michel Gaboly www.gaboly.com
Céline
bonjour Michel, la réponse était évidente... :p je l'ai vu passer une foultitude de fois sur le forum sans percuter.... Merci beaucoup de m'avoir ouvert les yeux, tu as donc résolu mes deux problèmes à la fois !!! bonne journée... Céline
bonjour Michel,
la réponse était évidente... :p je l'ai vu passer une foultitude de
fois sur le forum sans percuter....
Merci beaucoup de m'avoir ouvert les yeux, tu as donc résolu mes deux
problèmes à la fois !!!
bonne journée...
Céline
bonjour Michel, la réponse était évidente... :p je l'ai vu passer une foultitude de fois sur le forum sans percuter.... Merci beaucoup de m'avoir ouvert les yeux, tu as donc résolu mes deux problèmes à la fois !!! bonne journée... Céline
Michel Gaboly
De rien, ;:))
Bonne journée à toi aussi.
bonjour Michel, la réponse était évidente... :p je l'ai vu passer une foultitude de fois sur le forum sans percuter.... Merci beaucoup de m'avoir ouvert les yeux, tu as donc résolu mes deux problèmes à la fois !!! bonne journée... Céline
-- Cordialement,
Michel Gaboly www.gaboly.com
De rien, ;:))
Bonne journée à toi aussi.
bonjour Michel,
la réponse était évidente... :p je l'ai vu passer une foultitude de
fois sur le forum sans percuter....
Merci beaucoup de m'avoir ouvert les yeux, tu as donc résolu mes deux
problèmes à la fois !!!
bonne journée...
Céline
bonjour Michel, la réponse était évidente... :p je l'ai vu passer une foultitude de fois sur le forum sans percuter.... Merci beaucoup de m'avoir ouvert les yeux, tu as donc résolu mes deux problèmes à la fois !!! bonne journée... Céline