Incompatibilité de type !!!!

  • Initiateur de la discussion Initiateur de la discussion VUILLAUME
  • 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 !

V

VUILLAUME

Guest
Voici mon problème :
J'ai dans une feuille les décalrations suivantes pour éviter la création de doublons :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'colonne à "surveiller" (ici colonne A)
If Target.Column = 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 "Ce chantier existe déjà, veuillez recommencer ! "
Target.Value = ""
'Target.Select
Exit Sub
Else
If Application.WorksheetFunction. _
CountIf(Range("A:A"), Target.Value) = 1 Then
feuillechantiers
'Target.Value = ""
End If
End If
End If
End Sub
Sub feuillechantiers()
Workbooks("Salariés+Chantiers").Activate
chantier = nouveauchantier.TextBox1.Value
'création de la feuille chantier correspondante
Worksheets("Chantiers").Copy After:=Worksheets("Chantiers")
Application.ActiveSheet.Name = " " & chantier
End Sub

puis j'ai créé un USF pour supprimer certains chantiers :
Private Sub CommandButtonOK_Click()

'Sélection
Dim marque As Variant
chantier = ComboBox2.Value
Workbooks("Salariés+Chantiers").Activate
Worksheets(" " & chantier).Activate

'Suppression de la feuille
ActiveWindow.SelectedSheets.Delete

'suppression dans base chantiers
Workbooks("Essai").Activate
Dim L As Integer
Dim Plage As Range
Dim Cell As Range
Dim Msg As Integer
Dim Nom As String
L = Sheets("base chantiers").Range("A65536").End(xlUp).Row
Set Plage = Sheets("base chantiers").Range("A1:A" & L)
Nom = ComboBox2.Value
If Nom = "" Then Exit Sub
For Each Cell In Plage
If Cell.Value = Nom Then
Cell.EntireRow.Delete
End If
Next Cell
Combo
Unload Me
End Sub

de là, le nom dans la base est supprimé ainsi que la feuille, mais une erreur d'incompatibilité de type est envoyé.

Comment faire ?
Peut-on annuler par macro une erreur d'exécution ???????
D'avance merci
 
Bonsoir vuilleaume


J'ai regardé ton code afin de voir si je pouvais t'aider mais il faudrait un bout de ton fichier pour pouvoir analyser le PB;
A priori je ne vois pas de déclaration de variable pour "chantier"!!!
Que vient faire COMBO , est-ce une macro?

Regades ton code de plus près et vérifies que toutes tes variables soient bien déclarées,en l'occurence chantier est une variable de type string!

Désolé de ne pas pouvoir t'aider +

Bien amicalement
jacques de ryes
 
Combo est une macro :

Private Sub Combo()
With ComboBox2
.Value = ""
.SetFocus
End With
End Sub


En fait il y a une incompatibilité de type, de telle sorte que lorsque je crée un chantier c'est un texte box et quand je le supprime c'est un combobox.
Il y a t il un rapport ?????????
Je vais essayer avec le type string merci d'avance.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
256
Réponses
9
Affichages
404
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
1
Affichages
413
Retour