Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

message d'erreur ! pourquoi ?

  • Initiateur de la discussion Initiateur de la discussion zesuila
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zesuila

XLDnaute Occasionnel
Bonjour à tous
dans mon usine à gaz qu'est mon fichier, je lui demande (gentiment bien sûr !) en appuyant sur un bouton de me supprimer une ligne dans un onglet (appelons le B, cela lui fera plaisir). Tout se passe à merveille ! la sale petite ligne a disparu ! Mais pour se venger, elle me laisse un message d'erreur, la petite garce.
En effet dans cet onglet B, lorsque je veux supprimer une ligne, la ligne s'efface bien mais j'ai tout de suite après une boite message me disant "erreur d'execution 13. imcompatibilité de type"
et en faisant débogage (oui je sais je suis un lâche !! même pas capable de me défendre tout seul !!!), je tombe sur ce code avec
If Application.WorksheetFunction. _
CountIf(Range(Cells(2, 1), _
Cells(Target.Row, 1)), Target.Value) > 1 Then
souligné


ci dessous le code complet (que j'ai bien évidemment sournoisement piqué à un forumeur de ce site mais dont je ne me rappelle plus le nom.😱)

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Column = 1 Then
' pour vérifier si la saisie n'existe pas déjà dans les lignes précédentes
If Application.WorksheetFunction. _
CountIf(Range(Cells(2, 1), _
Cells(Target.Row, 1)), Target.Value) > 1 Then
' pour vérifier si la saisie n'existe pas déjà dans la colonne
If Application.WorksheetFunction. _
CountIf(Range("A:A"), Target.Value) > 1 Then
MsgBox "STOP -- DOUBLON"
Target.Value = ""
Target.Select
End If
End If
End If
'colonne à "surveiller" (ici colonne A)
End Sub

Je précise que si je fais fin au lieu de débogage, tout se passe bien après , ma ligne a bien disparu mon fichier est là, bref tout va bien sauf cette "info", on va l'appeler comme ça, de visual basic!


ALors charmant(es) forumeu(ses)rs, une suggestion, avant de passer à l'acte !!!😀
 
Re : message d'erreur ! pourquoi ?

Bonjour zezuila,
Lors de la suppression de ligne, target génère l'erreur, essaie ceci:

Code:
 Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 [COLOR=Red]On error Goto Fin[/COLOR]
If Target.Column = 1 Then
' pour vérifier si la saisie n'existe pas déjà dans les lignes précédentes
If Application.WorksheetFunction. _
CountIf(Range(Cells(2, 1), _
Cells(Target.Row, 1)), Target.Value) > 1 Then
' pour vérifier si la saisie n'existe pas déjà dans la colonne
If Application.WorksheetFunction. _
CountIf(Range("A:A"), Target.Value) > 1 Then
MsgBox "STOP -- DOUBLON"
Target.Value = ""
Target.Select
End If
End If
End If
'colonne à "surveiller" (ici colonne A)
[COLOR=Red]Fin:[/COLOR]
End Sub

@+
 
Re : message d'erreur ! pourquoi ?

Et voilà ! c'est résolu !
Ma question à 40 lignes environ
Ta réponse en 5 mots !
Court mais précis
AH oui j'allais oublier :
Félicitation pour ton passage à 1000 posts (eh oui on parle de toi dans le salon)
Bonne journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
276
Réponses
4
Affichages
583
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
2
Affichages
524
Réponses
5
Affichages
900
Réponses
1
Affichages
468
Réponses
10
Affichages
658
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…