Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les nomb res un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Me rci par
avance pour vos idées.
Julie
Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les nomb res un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Me rci par
avance pour vos idées.
Julie
Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les nomb res un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Me rci par
avance pour vos idées.
Julie
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH <jul...@discussions.microsoft.com> wrote:
Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie
Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau probl ème
: pour réaliser mes essais, j'ai effacé une plage de données en B e t C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi 40 04
en D. Pourquoi ? alors que normalement la colonne qui est concernée par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4 en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
JulieBonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les n ombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directem ent
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err.. .,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau probl ème
: pour réaliser mes essais, j'ai effacé une plage de données en B e t C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi 40 04
en D. Pourquoi ? alors que normalement la colonne qui est concernée par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4 en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
Julie
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH <jul...@discussions.microsoft.com> wrote:
Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les n ombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directem ent
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err.. .,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau probl ème
: pour réaliser mes essais, j'ai effacé une plage de données en B e t C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi 40 04
en D. Pourquoi ? alors que normalement la colonne qui est concernée par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4 en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
JulieBonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les n ombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directem ent
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err.. .,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Je n'observe pas le pb sur mon poste.
Application.EnableEvents = False évite les événements endogènes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
Application.EnableEvents = True
End If
End Sub
JB
On 21 sep, 12:49, JulieH wrote:Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau problème
: pour réaliser mes essais, j'ai effacé une plage de données en B et C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi 4004
en D. Pourquoi ? alors que normalement la colonne qui est concernée par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4 en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
JulieBonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Je n'observe pas le pb sur mon poste.
Application.EnableEvents = False évite les événements endogènes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
Application.EnableEvents = True
End If
End Sub
JB
On 21 sep, 12:49, JulieH <jul...@discussions.microsoft.com> wrote:
Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau problème
: pour réaliser mes essais, j'ai effacé une plage de données en B et C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi 4004
en D. Pourquoi ? alors que normalement la colonne qui est concernée par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4 en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
Julie
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH <jul...@discussions.microsoft.com> wrote:
Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Je n'observe pas le pb sur mon poste.
Application.EnableEvents = False évite les événements endogènes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
Application.EnableEvents = True
End If
End Sub
JB
On 21 sep, 12:49, JulieH wrote:Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau problème
: pour réaliser mes essais, j'ai effacé une plage de données en B et C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi 4004
en D. Pourquoi ? alors que normalement la colonne qui est concernée par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4 en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
JulieBonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Effectivement, j'ai modifié avec tes deux lignes et cela fonctionne.
Comme je disais que c'est un type de problème que je rencontre souvent,
j'ai essayé dans un autre fichier avec un type d'erreur qui ressemble.
Malheureusement cela ne suffit pas.
Dans cet autre fichier, j'ai la macro suivante qui met des bordures de A à
U lorsque je saisis dans une cellule de A :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 1 And Target <> "" Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End sub
Tout se passe bien lorsque je saisis dans une cellule de A.
Tout se passe bien également lorsque je copie une plage en A (A1:A20 par
exemple). Idem pour une plage A1:B20.
Tout se passe bien également si je saisis dans une cellule d'une autre
colonne (I par exemple).
En revanche, si je copie une plage en I (I1:I20 par exemple), il me met
les bordures sur les 19 colonnes suivantes.
Pour moi, en fonction du code, il ne devrait le faire que lorsque je fais
quelque chose en A !!!
EnableEvents n'y change rien.
Merci encore pour ton aide précieuse.
JulieJe n'observe pas le pb sur mon poste.
Application.EnableEvents = False évite les événements endogènes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
Application.EnableEvents = True
End If
End Sub
JB
On 21 sep, 12:49, JulieH wrote:Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau problème
: pour réaliser mes essais, j'ai effacé une plage de données en B et C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi 4004
en D. Pourquoi ? alors que normalement la colonne qui est concernée par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4 en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
JulieBonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne
vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les
nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie
directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On
err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ?
Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Effectivement, j'ai modifié avec tes deux lignes et cela fonctionne.
Comme je disais que c'est un type de problème que je rencontre souvent,
j'ai essayé dans un autre fichier avec un type d'erreur qui ressemble.
Malheureusement cela ne suffit pas.
Dans cet autre fichier, j'ai la macro suivante qui met des bordures de A à
U lorsque je saisis dans une cellule de A :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 1 And Target <> "" Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End sub
Tout se passe bien lorsque je saisis dans une cellule de A.
Tout se passe bien également lorsque je copie une plage en A (A1:A20 par
exemple). Idem pour une plage A1:B20.
Tout se passe bien également si je saisis dans une cellule d'une autre
colonne (I par exemple).
En revanche, si je copie une plage en I (I1:I20 par exemple), il me met
les bordures sur les 19 colonnes suivantes.
Pour moi, en fonction du code, il ne devrait le faire que lorsque je fais
quelque chose en A !!!
EnableEvents n'y change rien.
Merci encore pour ton aide précieuse.
Julie
Je n'observe pas le pb sur mon poste.
Application.EnableEvents = False évite les événements endogènes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
Application.EnableEvents = True
End If
End Sub
JB
On 21 sep, 12:49, JulieH <jul...@discussions.microsoft.com> wrote:
Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau problème
: pour réaliser mes essais, j'ai effacé une plage de données en B et C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi 4004
en D. Pourquoi ? alors que normalement la colonne qui est concernée par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4 en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
Julie
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH <jul...@discussions.microsoft.com> wrote:
Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne
vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les
nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie
directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On
err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ?
Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Effectivement, j'ai modifié avec tes deux lignes et cela fonctionne.
Comme je disais que c'est un type de problème que je rencontre souvent,
j'ai essayé dans un autre fichier avec un type d'erreur qui ressemble.
Malheureusement cela ne suffit pas.
Dans cet autre fichier, j'ai la macro suivante qui met des bordures de A à
U lorsque je saisis dans une cellule de A :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 1 And Target <> "" Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End sub
Tout se passe bien lorsque je saisis dans une cellule de A.
Tout se passe bien également lorsque je copie une plage en A (A1:A20 par
exemple). Idem pour une plage A1:B20.
Tout se passe bien également si je saisis dans une cellule d'une autre
colonne (I par exemple).
En revanche, si je copie une plage en I (I1:I20 par exemple), il me met
les bordures sur les 19 colonnes suivantes.
Pour moi, en fonction du code, il ne devrait le faire que lorsque je fais
quelque chose en A !!!
EnableEvents n'y change rien.
Merci encore pour ton aide précieuse.
JulieJe n'observe pas le pb sur mon poste.
Application.EnableEvents = False évite les événements endogènes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
Application.EnableEvents = True
End If
End Sub
JB
On 21 sep, 12:49, JulieH wrote:Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau problème
: pour réaliser mes essais, j'ai effacé une plage de données en B et C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi 4004
en D. Pourquoi ? alors que normalement la colonne qui est concernée par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4 en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
JulieBonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne
vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les
nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie
directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On
err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ?
Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Si saisie mono-cellule:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End Sub
Si saisie multi-cellules:
Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Target
If c.Column = 1 Then
Range(c, c.Offset(, 19)).Borders.Weight = xlHairline
End If
Next
End Sub
JB
"JulieH" a écrit dans le message de news:
%23npZzWE$Effectivement, j'ai modifié avec tes deux lignes et cela fonctionne.
Comme je disais que c'est un type de problème que je rencontre souvent,
j'ai essayé dans un autre fichier avec un type d'erreur qui ressemble.
Malheureusement cela ne suffit pas.
Dans cet autre fichier, j'ai la macro suivante qui met des bordures de A à
U lorsque je saisis dans une cellule de A :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 1 And Target <> "" Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End sub
Tout se passe bien lorsque je saisis dans une cellule de A.
Tout se passe bien également lorsque je copie une plage en A (A1:A20 par
exemple). Idem pour une plage A1:B20.
Tout se passe bien également si je saisis dans une cellule d'une autre
colonne (I par exemple).
En revanche, si je copie une plage en I (I1:I20 par exemple), il me met
les bordures sur les 19 colonnes suivantes.
Pour moi, en fonction du code, il ne devrait le faire que lorsque je fais
quelque chose en A !!!
EnableEvents n'y change rien.
Merci encore pour ton aide précieuse.
JulieJe n'observe pas le pb sur mon poste.
Application.EnableEvents = False évite les événements endogènes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
Application.EnableEvents = True
End If
End Sub
JB
On 21 sep, 12:49, JulieH wrote:Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau problème
: pour réaliser mes essais, j'ai effacé une plage de données en B et C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi 4004
en D. Pourquoi ? alors que normalement la colonne qui est concernée par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4 en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
JulieBonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne
vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les
nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie
directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On
err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ?
Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Si saisie mono-cellule:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End Sub
Si saisie multi-cellules:
Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Target
If c.Column = 1 Then
Range(c, c.Offset(, 19)).Borders.Weight = xlHairline
End If
Next
End Sub
JB
"JulieH" <julieh@discussions.microsoft.com> a écrit dans le message de news:
%23npZzWE$HHA.5840@TK2MSFTNGP03.phx.gbl...
Effectivement, j'ai modifié avec tes deux lignes et cela fonctionne.
Comme je disais que c'est un type de problème que je rencontre souvent,
j'ai essayé dans un autre fichier avec un type d'erreur qui ressemble.
Malheureusement cela ne suffit pas.
Dans cet autre fichier, j'ai la macro suivante qui met des bordures de A à
U lorsque je saisis dans une cellule de A :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 1 And Target <> "" Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End sub
Tout se passe bien lorsque je saisis dans une cellule de A.
Tout se passe bien également lorsque je copie une plage en A (A1:A20 par
exemple). Idem pour une plage A1:B20.
Tout se passe bien également si je saisis dans une cellule d'une autre
colonne (I par exemple).
En revanche, si je copie une plage en I (I1:I20 par exemple), il me met
les bordures sur les 19 colonnes suivantes.
Pour moi, en fonction du code, il ne devrait le faire que lorsque je fais
quelque chose en A !!!
EnableEvents n'y change rien.
Merci encore pour ton aide précieuse.
Julie
Je n'observe pas le pb sur mon poste.
Application.EnableEvents = False évite les événements endogènes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
Application.EnableEvents = True
End If
End Sub
JB
On 21 sep, 12:49, JulieH <jul...@discussions.microsoft.com> wrote:
Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau problème
: pour réaliser mes essais, j'ai effacé une plage de données en B et C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi 4004
en D. Pourquoi ? alors que normalement la colonne qui est concernée par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4 en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
Julie
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH <jul...@discussions.microsoft.com> wrote:
Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne
vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les
nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie
directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On
err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ?
Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Si saisie mono-cellule:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End Sub
Si saisie multi-cellules:
Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Target
If c.Column = 1 Then
Range(c, c.Offset(, 19)).Borders.Weight = xlHairline
End If
Next
End Sub
JB
"JulieH" a écrit dans le message de news:
%23npZzWE$Effectivement, j'ai modifié avec tes deux lignes et cela fonctionne.
Comme je disais que c'est un type de problème que je rencontre souvent,
j'ai essayé dans un autre fichier avec un type d'erreur qui ressemble.
Malheureusement cela ne suffit pas.
Dans cet autre fichier, j'ai la macro suivante qui met des bordures de A à
U lorsque je saisis dans une cellule de A :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 1 And Target <> "" Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End sub
Tout se passe bien lorsque je saisis dans une cellule de A.
Tout se passe bien également lorsque je copie une plage en A (A1:A20 par
exemple). Idem pour une plage A1:B20.
Tout se passe bien également si je saisis dans une cellule d'une autre
colonne (I par exemple).
En revanche, si je copie une plage en I (I1:I20 par exemple), il me met
les bordures sur les 19 colonnes suivantes.
Pour moi, en fonction du code, il ne devrait le faire que lorsque je fais
quelque chose en A !!!
EnableEvents n'y change rien.
Merci encore pour ton aide précieuse.
JulieJe n'observe pas le pb sur mon poste.
Application.EnableEvents = False évite les événements endogènes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
Application.EnableEvents = True
End If
End Sub
JB
On 21 sep, 12:49, JulieH wrote:Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau problème
: pour réaliser mes essais, j'ai effacé une plage de données en B et C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi 4004
en D. Pourquoi ? alors que normalement la colonne qui est concernée par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4 en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
JulieBonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne
vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les
nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie
directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On
err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ?
Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Si je comprends bien, on ne peut pas gérer les deux en même temps dans une
même feuille ?
JulieSi saisie mono-cellule:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End Sub
Si saisie multi-cellules:
Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Target
If c.Column = 1 Then
Range(c, c.Offset(, 19)).Borders.Weight = xlHairline
End If
Next
End Sub
JB
"JulieH" a écrit dans le message de
news: %23npZzWE$Effectivement, j'ai modifié avec tes deux lignes et cela fonctionne.
Comme je disais que c'est un type de problème que je rencontre souvent,
j'ai essayé dans un autre fichier avec un type d'erreur qui ressemble.
Malheureusement cela ne suffit pas.
Dans cet autre fichier, j'ai la macro suivante qui met des bordures de A
à U lorsque je saisis dans une cellule de A :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 1 And Target <> "" Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End sub
Tout se passe bien lorsque je saisis dans une cellule de A.
Tout se passe bien également lorsque je copie une plage en A (A1:A20
par exemple). Idem pour une plage A1:B20.
Tout se passe bien également si je saisis dans une cellule d'une autre
colonne (I par exemple).
En revanche, si je copie une plage en I (I1:I20 par exemple), il me met
les bordures sur les 19 colonnes suivantes.
Pour moi, en fonction du code, il ne devrait le faire que lorsque je
fais quelque chose en A !!!
EnableEvents n'y change rien.
Merci encore pour ton aide précieuse.
JulieJe n'observe pas le pb sur mon poste.
Application.EnableEvents = False évite les événements endogènes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
Application.EnableEvents = True
End If
End Sub
JB
On 21 sep, 12:49, JulieH wrote:Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau
problème
: pour réaliser mes essais, j'ai effacé une plage de données en B et C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi
4004
en D. Pourquoi ? alors que normalement la colonne qui est concernée
par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4
en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant
cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une
formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
JulieBonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne
vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple
:
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les
nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére
une
liste entière de nombres dans un autre fichier que je copie
directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a
pas
"on error resume next", il y a un message d'erreur. S'il y a "On
err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ?
Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Si je comprends bien, on ne peut pas gérer les deux en même temps dans une
même feuille ?
Julie
Si saisie mono-cellule:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End Sub
Si saisie multi-cellules:
Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Target
If c.Column = 1 Then
Range(c, c.Offset(, 19)).Borders.Weight = xlHairline
End If
Next
End Sub
JB
"JulieH" <julieh@discussions.microsoft.com> a écrit dans le message de
news: %23npZzWE$HHA.5840@TK2MSFTNGP03.phx.gbl...
Effectivement, j'ai modifié avec tes deux lignes et cela fonctionne.
Comme je disais que c'est un type de problème que je rencontre souvent,
j'ai essayé dans un autre fichier avec un type d'erreur qui ressemble.
Malheureusement cela ne suffit pas.
Dans cet autre fichier, j'ai la macro suivante qui met des bordures de A
à U lorsque je saisis dans une cellule de A :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 1 And Target <> "" Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End sub
Tout se passe bien lorsque je saisis dans une cellule de A.
Tout se passe bien également lorsque je copie une plage en A (A1:A20
par exemple). Idem pour une plage A1:B20.
Tout se passe bien également si je saisis dans une cellule d'une autre
colonne (I par exemple).
En revanche, si je copie une plage en I (I1:I20 par exemple), il me met
les bordures sur les 19 colonnes suivantes.
Pour moi, en fonction du code, il ne devrait le faire que lorsque je
fais quelque chose en A !!!
EnableEvents n'y change rien.
Merci encore pour ton aide précieuse.
Julie
Je n'observe pas le pb sur mon poste.
Application.EnableEvents = False évite les événements endogènes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
Application.EnableEvents = True
End If
End Sub
JB
On 21 sep, 12:49, JulieH <jul...@discussions.microsoft.com> wrote:
Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau
problème
: pour réaliser mes essais, j'ai effacé une plage de données en B et C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi
4004
en D. Pourquoi ? alors que normalement la colonne qui est concernée
par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4
en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant
cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une
formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
Julie
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH <jul...@discussions.microsoft.com> wrote:
Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne
vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple
:
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les
nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére
une
liste entière de nombres dans un autre fichier que je copie
directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a
pas
"on error resume next", il y a un message d'erreur. S'il y a "On
err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ?
Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Si je comprends bien, on ne peut pas gérer les deux en même temps dans une
même feuille ?
JulieSi saisie mono-cellule:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End Sub
Si saisie multi-cellules:
Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Target
If c.Column = 1 Then
Range(c, c.Offset(, 19)).Borders.Weight = xlHairline
End If
Next
End Sub
JB
"JulieH" a écrit dans le message de
news: %23npZzWE$Effectivement, j'ai modifié avec tes deux lignes et cela fonctionne.
Comme je disais que c'est un type de problème que je rencontre souvent,
j'ai essayé dans un autre fichier avec un type d'erreur qui ressemble.
Malheureusement cela ne suffit pas.
Dans cet autre fichier, j'ai la macro suivante qui met des bordures de A
à U lorsque je saisis dans une cellule de A :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 1 And Target <> "" Then
Range(Target, Target.Offset(, 19)).Borders.Weight = xlHairline
End If
End sub
Tout se passe bien lorsque je saisis dans une cellule de A.
Tout se passe bien également lorsque je copie une plage en A (A1:A20
par exemple). Idem pour une plage A1:B20.
Tout se passe bien également si je saisis dans une cellule d'une autre
colonne (I par exemple).
En revanche, si je copie une plage en I (I1:I20 par exemple), il me met
les bordures sur les 19 colonnes suivantes.
Pour moi, en fonction du code, il ne devrait le faire que lorsque je
fais quelque chose en A !!!
EnableEvents n'y change rien.
Merci encore pour ton aide précieuse.
JulieJe n'observe pas le pb sur mon poste.
Application.EnableEvents = False évite les événements endogènes.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
Application.EnableEvents = True
End If
End Sub
JB
On 21 sep, 12:49, JulieH wrote:Bonjour et merci pour ton aide,
Evidemment, il y a toujours une solution !!! La modification
fonctionne parfaitement pour ce que j'ai demandé.
Cependant, cela m'a permis de mettre en évidence un nouveau
problème
: pour réaliser mes essais, j'ai effacé une plage de données en B et C
en laissant le nombre 4 en I5. La formule a permis d'indiquer 4 en
colonne C (normal, il a considéré qu'il y avait 0 en B) mais aussi
4004
en D. Pourquoi ? alors que normalement la colonne qui est concernée
par
la formule est la 2, pas la 3.
De même, si à suivre, j'efface les données de la C, il me note 4
en
D. Et ainsi de suite, au point que je n'y arrive qu'en effaçant
cellule
par cellule.
Je ne sais pas si c'est très clair. En résumé le problème est le
suivant : si je comprends bien le code, il permet de mettre une
formule
en C lorsque on change quelque chose en colonne B (2). Or les
Worksheet_Change ont souvent des réactions plus compliquées que cela.
Y-a-t-il une explication et des moyens d'y remédier ?
Merci d'avance
JulieBonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne
vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple
:
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les
nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére
une
liste entière de nombres dans un autre fichier que je copie
directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a
pas
"on error resume next", il y a un message d'erreur. S'il y a "On
err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ?
Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JBhttp://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je n e vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les no mbres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére u ne
liste entière de nombres dans un autre fichier que je copie directeme nt
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JBhttp://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH <jul...@discussions.microsoft.com> wrote:
Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je n e vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les no mbres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére u ne
liste entière de nombres dans un autre fichier que je copie directeme nt
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JBhttp://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je n e vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les no mbres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére u ne
liste entière de nombres dans un autre fichier que je copie directeme nt
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
http://boisgontierjacques.free.fr/pages_site/evenements.htm#SaisieMultiCellules
JB
On 21 sep, 11:30, JB wrote:Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JBhttp://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
http://boisgontierjacques.free.fr/pages_site/evenements.htm#SaisieMultiCellules
JB
On 21 sep, 11:30, JB <boisgont...@hotmail.com> wrote:
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JBhttp://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH <jul...@discussions.microsoft.com> wrote:
Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
http://boisgontierjacques.free.fr/pages_site/evenements.htm#SaisieMultiCellules
JB
On 21 sep, 11:30, JB wrote:Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
For i = 1 To Target.Count
Target(i).Offset(, 1) = [I5] & Format(Target(i), "000")
Next i
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
JBhttp://boisgontierjacques.free.fr
On 21 sep, 10:54, JulieH wrote:Bonjour à toutes et tous,
J'ai souvent le même problème avec Worksheet_change et je ne vois pas
bien comment le résoudre. Je me décide donc à demander de l'aide :
Voici un exemple parmi d'autre :
Je saisis en colonne B un nombre et je souhaite qu'en colonne C, ce
nombre s'affiche en y ajoutant un autre chiffre figé en I5. Exemple :
3 en I5 - 2995 en B10 - 32995 en C10. La macro suivante fait cela
parfaitement :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target <> "" Then
Target.Offset(, 1) = [I5] & Format(Target, "000")
If [I5] = "" Then
MsgBox "Saisir un nombre en G5"
End If
End If
End Sub
Le problème est le suivant : tout va bien si je saisis les nombres un à
un (B10 puis B11 puis B12...). Cependant quelquefois, je récupére une
liste entière de nombres dans un autre fichier que je copie directement
(par exemple copier coller de B10 à B35). Dans ce cas, s'il n'y a pas
"on error resume next", il y a un message d'erreur. S'il y a "On err...,
tout continue mais il n'y a rien qui s'affiche de C10 à C35.
Y-a-t-il une solution pour résoudre ce genre de problème ? Merci par
avance pour vos idées.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -