Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Le Texbox reste coincé

11 réponses
Avatar
frasax
Bonjour à toutes et à tous,

J'ai la macro suivante :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End Sub

Si j'exécute par erreur 2x la même entrée, c'est-à-dire que le même N°
d'article est entré deux fois, le MsgBox "Saisissez un autre numéro, celui-ci
existe déjà", reste coincé.
Y a t-il une solution pour remédier à ce problème ?
Merci d'avance de votre aide et à +

10 réponses

1 2
Avatar
Youky
Salut
.EnableEvent empêche l'évenement d'avoir lieu le temps d'effectuer le
changement
Youky

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Application.EnableEvents = False
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
Target.Select
Application.EnableEvents = True
End If
End If
End Sub

"frasax" a écrit dans le message de news:

Bonjour à toutes et à tous,

J'ai la macro suivante :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End Sub

Si j'exécute par erreur 2x la même entrée, c'est-à-dire que le même N°
d'article est entré deux fois, le MsgBox "Saisissez un autre numéro,
celui-ci
existe déjà", reste coincé.
Y a t-il une solution pour remédier à ce problème ?
Merci d'avance de votre aide et à +




Avatar
frasax
Salut Youky,

OK ça ne coince plus, mais le problème c'est que le Texbox n'apparaît plus.
Je n'arrive pas à joindre le dossier qui fait 345Ko.
Encore merci et à +



Salut
..EnableEvent empêche l'évenement d'avoir lieu le temps d'effectuer le
changement
Youky

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Application.EnableEvents = False
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
Target.Select
Application.EnableEvents = True
End If
End If
End Sub

"frasax" a écrit dans le message de news:

Bonjour à toutes et à tous,

J'ai la macro suivante :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End Sub

Si j'exécute par erreur 2x la même entrée, c'est-à-dire que le même N°
d'article est entré deux fois, le MsgBox "Saisissez un autre numéro,
celui-ci
existe déjà", reste coincé.
Y a t-il une solution pour remédier à ce problème ?
Merci d'avance de votre aide et à +









Avatar
francois.forcet
Salut à toi

Et ton code modifié ainsi :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 And Target.Value <> "PAS VALIDE" Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End Sub

n'est ce pas mieux ????

Dis moi !!!!!
Avatar
frasax
Salut,
Non, maintenant c'est la ligne If Target.Column = 6 And Target.Value <> "PAS
VALIDE" Then qui pose problème.
Enfin j'ai pu mettre le fichier en joint à consulter
http://cjoint.com/?eDoJHazyCr
J'espère que ça pourra aider
Encore merci et à +

frasax




Salut à toi

Et ton code modifié ainsi :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 And Target.Value <> "PAS VALIDE" Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End Sub

n'est ce pas mieux ????

Dis moi !!!!!



Avatar
francois.forcet
Rebonjour à toi

Chez moi ton fichier fonctionne à la perfection à l'exception de la
suppression du contenu de plusieurs cellules en même temps de la
colonne F où effectivement un Bug se produit sur la ligne :

If Target.Column = 6 And Target.Value <> "PAS VALIDE" Then

Pour éviter cet inconvénient j'ai modifié le code quelques peu ainsi :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Selection.Cells.Count = 1 Then
If Target.Column = 6 And Target.Value <> "PAS VALIDE" Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End If
End Sub

Celà fonctionne ainsi parfaitement

Sur ce lien ton document modifié dans cet esprit :

http://www.cijoint.fr/cjlink.php?file=cj200804/cijSYpRijq.xls.


Donne moi ton avis !!!!
Avatar
frasax
Rebonjour,

Chez moi ça fonctionne pas j'ai l'erreur d'exécution 13
Incompatibilité de type
Je suis sous Windows XP Home Office 2003 au cas où ça aurait de l'importance
Dit moi si ça peut influencer
Merci et à +



Rebonjour à toi

Chez moi ton fichier fonctionne à la perfection à l'exception de la
suppression du contenu de plusieurs cellules en même temps de la
colonne F où effectivement un Bug se produit sur la ligne :

If Target.Column = 6 And Target.Value <> "PAS VALIDE" Then

Pour éviter cet inconvénient j'ai modifié le code quelques peu ainsi :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Selection.Cells.Count = 1 Then
If Target.Column = 6 And Target.Value <> "PAS VALIDE" Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End If
End Sub

Celà fonctionne ainsi parfaitement

Sur ce lien ton document modifié dans cet esprit :

http://www.cijoint.fr/cjlink.php?file=cj200804/cijSYpRijq.xls.


Donne moi ton avis !!!!



Avatar
francois.forcet
Rebonjour à toi

As tu essayé avec le fichier que je t'ai tranmis ????
je ne pense pas que le système d'exploitation est une quelconque
influence

Essaies de rebooter ton PC et de réaliser une nouvelle tentative

Dans la négative donnes moi exactement la saisie que tu réalises pour
que je réessaye de mon côté à l'identique
Peut être sur un certain paramètre ou une manière de procéder le Bug
se déclencherait il et que je n'ai pas testé
Ce serait surprenant mais pourquoi pas

Tiens moi informé
Avatar
frasax
Rebonjour,

Le problème c'est que je ne serai pas seul à utiliser le programme
Or, ce qui ce passe c'est que le Texbox pour mettre fin à l'erreur
posera un problème à l'utilisateur, il ne saura pas s'il faut cliquer
sur fin ou sur debogage et que certainement je mettrai une protection
à la macro, dans ce cas s'il presse sur debogage, il saura pas quoi
faire pour en sortir
J'espère être compréhensif dans mon explication ?
Le problème est donc si après 2 entrée du même N° Art. selon mon
dossier joint l'Art. N° 154, si je le transfère 2 x ça bogue
Merci de bien vouloir encore essayer avec mon fichier et à +


Rebonjour à toi

As tu essayé avec le fichier que je t'ai tranmis ????
je ne pense pas que le système d'exploitation est une quelconque
influence

Essaies de rebooter ton PC et de réaliser une nouvelle tentative

Dans la négative donnes moi exactement la saisie que tu réalises pour
que je réessaye de mon côté à l'identique
Peut être sur un certain paramètre ou une manière de procéder le Bug
se déclencherait il et que je n'ai pas testé
Ce serait surprenant mais pourquoi pas

Tiens moi informé



Avatar
frasax
RERE,

J'ai omis que c'est avec ta macro que j'ai testé non pas avec mon
fichier, à +



Rebonjour,

Le problème c'est que je ne serai pas seul à utiliser le programme
Or, ce qui ce passe c'est que le Texbox pour mettre fin à l'erreur
posera un problème à l'utilisateur, il ne saura pas s'il faut cliquer
sur fin ou sur debogage et que certainement je mettrai une protection
à la macro, dans ce cas s'il presse sur debogage, il saura pas quoi
faire pour en sortir
J'espère être compréhensif dans mon explication ?
Le problème est donc si après 2 entrée du même N° Art. selon mon
dossier joint l'Art. N° 154, si je le transfère 2 x ça bogue
Merci de bien vouloir encore essayer avec mon fichier et à +


Rebonjour à toi

As tu essayé avec le fichier que je t'ai tranmis ????
je ne pense pas que le système d'exploitation est une quelconque
influence

Essaies de rebooter ton PC et de réaliser une nouvelle tentative

Dans la négative donnes moi exactement la saisie que tu réalises pour
que je réessaye de mon côté à l'identique
Peut être sur un certain paramètre ou une manière de procéder le Bug
se déclencherait il et que je n'ai pas testé
Ce serait surprenant mais pourquoi pas

Tiens moi informé





Avatar
PMO
Bonjour,

A tout hasard, essayez

''************
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column <> 6 Then Exit Sub
If CStr(Target.Value) = "PAS VALIDE" Then Exit Sub
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End Sub
''************

Cordialement.

PMO
Patrick Morange
1 2