Erreur d'exécution '13': Incompatibilité de type
Bonsoir à tous,
J'ai cherché mon cas dans le forum mais sans succès, donc voilà mon problème.
Lorsque je lance ma macro, j'ai cette erreur:
Erreur d'exécution '13': Incompatibilité de type
Je lance de Débogage et il me renvois ici:
'On les rends égales aux valeurs entrée par l'utilisateur:
nom = TextBox_nom
prenom = TextBox_prenom
age = TextBox_age
taille = TextBox_taille
poids = TextBox_poids
yeux = TextBox_yeux
cheveux = TextBox_cheveux
carac_mvt = TextBox_mvt
carac_san = TextBox_san
carac_hab = TextBox_hab
carac_tir = TextBox_tir
carac_for = TextBox_for
carac_def = TextBox_def
carac_int = TextBox_int
carac_per = TextBox_per
carac_ten = TextBox_ten
carac_cha = TextBox_cha
carac_ins = TextBox_ins
carac_rea = TextBox_rea
Je ne comprend vraiment pas pourquoi il bloque
Je joint le fichier pour ceux qui auraient besoin de plus d'infos.
Merci d'avance!
Bonjour
Tu dois faire le contraire
D'abord vérifier si les données dans les contrôles correspondent à ce que tu veux et ensuite les transférer dans les variables
exemple
If Not IsNumeric(TextBox_age) Then
MsgBox "L'âge doit-être de type numérique!", vbOKOnly + vbCritical, "Age incorrect"
Exit Sub
End If
age = TextBox_age
Je n'ai pas trop vérifié mais je ne crois pas utile de passer par des variables
En me basant sur ton exemple j'ai remplacé:
If MsgBox("L'âge doit-être de type numérique!", vbOKOnly + vbCritical, "Age incorrect") = vbOK Then
par
If MsgBox("L'âge doit-être de type numérique!", vbOKOnly + vbCritical, "Age incorrect") Then
Ça à l'air d'avoir réglé le problème. Merci mille fois!
Mais j'en ai un nouveau!! pfffff
Erreur d'exécution '438':
Propriété ou méthode non gérée par cet objet
Je lance de Débogage et il me renvois ici:
Sheets("Fiche de Personnage").Tab.Index = 41
Bonjour
Oui c'est vrai quand j'avais teste ton programme je l'avais corrigé
Essayes
Sheets("Fiche de Personnage").Tab.ColorIndex= 41
Je ne comprends pas pourquoi tu passes par une condition
If MsgBox("L'âge doit-être de type numérique!", vbOKOnly + vbCritical, "Age incorrect") Then
La condition est sur le test du contrôle et si le test est concluant on informe et on quitte la macro
Super!
Tu es vraiment au top, merci beaucoup Banzai!
Encore 2 petites question et j'aurai fini mon objet de création de PJ, je suis aux anges
Donc je supprime CommandButton_manu et CommandButton_manu2 puisqu'ils sont obsolètes (il suffit à l'utilisateur de rentrer les données directement donc bon)
Le CommandButton_valider et CommandButton_quitter sont achevés grâce à toi.
Bon, petit problème dont tu dois connaître les raisons, lorsque je valide, il me fait tout bien sauf qu'il n'écrit pas le contenu des 2 ComboBox, étrange.
Il me reste que CommandButton_annuler.
Alors c'est un peu plus compliqué puisque ce bouton sert à effacer le contenu des TextBox et ComboBox ET dois afficher l'onglet Page1 tout en replaçant les valeurs par défaut.
Bon les valeurs par défaut tout ça, je sais faire. Mais comment fait-on pour changer d'onglet?
Après ça, il restera:
- la rédaction de l'intrigue (mais ça c'est mon domaine de prédilection
), - programmer le système de combat (mais j'avais déjà fait un sujet le concernant, donc c'est du fignolage hihi),
- et un readme pour expliquer comment jouer.
Je tiens le bon bout! mouahahaha
EDIT: J'avais pas vu ta dernière remarque!
Je regarde ça et réédite ce message... WORK IN PROGRESS ^^
Ok, bon en fait il me mettait
ou= attendu
ou d'autres choses encore et j'ai fait comme ça car je me basais sur un exemple. Dès que j'essais de faire autrement, il me dégage une erreur :/attendu fin d'instruction
Bonjour
Pas sur d'avoir compris tes questions
Pour le bouton annuler remplaces ta macro par celle-ci
Sub CommandButton_annuler_Click()
'Demander à l'utilisateur s'il est certain de vouloir effacer sa fiche de personnage:
'(Tuto = http://www.excel-pratique.com/fr/vba/boites_de_dialogue.php)
If MsgBox("Etes-vous certain de vouloir supprimer le contenu de votre Fiche de Personnage", vbYesNo + vbExclamation, "Demande de Confirmation") = vbYes Then
'S'il valide,
'Effaçage des données:
Sheets("Fiche de Personnage").Range("B5,K5,T5,X5,AC5,AH5,AO5,B9,E9,H9,K9,N9,Q9,B13,E13,H13,K13,N13,Q13") = ""
'Message pour prévenir l'utilisateur que la fiche a bien été supprimée:
MsgBox "La Fiche de Personnage a bien été effacée !", vbInformation, "Confirmation"
UserForm_Initialize
End If
End Sub
Pour afficher la 1ère page du MultiPage modifies le début de la macro "UserForm_Initialize"
Sub UserForm_Initialize()
Me.MultiPage1.Value = 0
'Centrer l'UFS par rapport à l'écran:
Ah oui cette ligne allège grandement mes manipulations fastidieuses!
Et on peut relancer l'Initialize de cette façon, ok. C'est vraiment le genre d'astuces qu'on ne trouve pas dans les tutos
Tu as une fois de plus répondu clairement à mes questionnements.
Je clos le sujet, mes objectifs concernant la création de la fiche de PJ ont été remplis.
Merci encore pour ces réponses précises, également pour m'avoir consacré du temps, autant dans la résolution que dans les explications. Tu es bon pédagogue.
Bien à toi,
Aikamaru.
Bonjour,
Cela fait quelque temps que je bloque sur ce problème d'exécution '13' et je n'arrive pas à trouver la solution.
Voilà mon programme :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("G48")) Is Nothing Then
If Target Like "R*" Then
Range("K14").Interior.ColorIndex = 10
ElseIf Target Like "ED" Then
Range("K12").Interior.ColorIndex = 10
Else
Range("K12").Interior.ColorIndex = 2
End If
End If
End Sub
Et c'est en lançant une autre macro que l'erreur s'affiche.
Si quelqu’un pourrait m’aider ça serait génial merci