Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Plumeau72
  • 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 !

P

Plumeau72

Guest
Bonjour,
j'ai créé un userform dans lequel j'ai prévu des textBox pour les N° de téléphone (fixe et mobile).
Quand la personne ne communique pas, soit le fixe, soit le portable, le champ correspondant reste vide et quand j'inscris dans un fichier Excel, il m'est répondu

"Erreur d'exécution '13'
Incompatibilité de type"

Je précise que je suis débutant en VBA

Merci de votre aide
 
Voici le code utilisé


'***********************
'Procédure permettant d'ajouter un nouveau client
'dans le fichier client
'***********************
Private Sub BtnAjout_Click()

Sheets("Fichier clients").Activate
Range("A1").Select
Selection.End(xlDown).Select 'Positionne sur la dernire ligne non vide
Selection.Offset(1, 0).Select 'DŽcale d'une ligne vers le bas
ActiveCell = cboOrdre.Value
ActiveCell.Offset(0, 1).Value = cboMachine
ActiveCell.Offset(0, 2).Value = cboService
ActiveCell.Offset(0, 3).Value = cboCivilite
ActiveCell.Offset(0, 4).Value = txtNom
ActiveCell.Offset(0, 5).Value = txtPrenom
ActiveCell.Offset(0, 6).Value = txtAdresse
ActiveCell.Offset(0, 7).Value = txtCP
ActiveCell.Offset(0, 8).Value = txtVille
ActiveCell.Offset(0, 9).Value = txtFixe
ActiveCell.Offset(0, 10).Value = txtPortable
ActiveCell.Offset(0, 11).Value = txtEmail
ActiveCell.Offset(0, 12).Value = txtCommentaire

MsgBox "La fiche client a bien été créée", vbOKOnly + vbInformation, "CONFIRMATION"

Unload Me

End Sub

Merci
 
Bonjour, Lupin
J'ai essayé la modification proposée mais le résultat est le même.

Je vous adresse l'ensemble d'instructions ci-dessous.
Quand j'édite le débogage, la ligne Range ("D8") est surlignée en jaune:

Sheets("Prise en charge").Activate
Range("D4").Select
ActiveCell.Value = cboMachine
ActiveCell.Offset(1, 0).Value = cboMachine
ActiveCell.Offset(2, 0).Value = cboCivilite
ActiveCell.Offset(2, 1).Value = txtNom
ActiveCell.Offset(2, 2).Value = txtPrenom
ActiveCell.Offset(3, 0).Value = txtAdresse
ActiveCell.Offset(4, 0).Value = txtCP
ActiveCell.Offset(5, 0).Value = txtVille
ActiveCell.Offset(6, 0).Value = txtFixe
ActiveCell.Offset(7, 0).Value = txtPortable
ActiveCell.Offset(11, -3).Value = txtCommentaire
Range("D8") = CDbl(frmSaisie.txtCP) 'Format nombre
Range("D10") = CDbl(frmSaisie.txtFixe) 'Format nombre
Range("D11") = CDbl(frmSaisie.txtPortable) 'Format nombre

Merci de votre aide
 
Je l'avais bien deviné qu'il s'agissait du code postal. Mais parfois on peut le précéder d'une lettre.
Et en essayant CLng au lieu de CDbl ! Car en fait CDbl est prévu pour des nombres décimaux, et dans le cas de CP il n'y a pas de décimales.
 
D'abord merci

Je t'adresse le fichier ci-dessous. J'ai mis des apostrophes avant les 3 dernières lignes et cela fonctionne correctement (sans le débogage systématique), mais mon second problème est que même si je mets les cellules de destination :

D8 en format spécial "code postal" et les cellules D10 et D11 en format spécial "N° de téléphone

restent tout le temps en format texte

Sheets("Prise en charge").Activate
Range("D4").Select
ActiveCell.Value = cboMachine
ActiveCell.Offset(1, 0).Value = cboMachine
ActiveCell.Offset(2, 0).Value = cboCivilite
ActiveCell.Offset(2, 1).Value = txtNom
ActiveCell.Offset(2, 2).Value = txtPrenom
ActiveCell.Offset(3, 0).Value = txtAdresse
ActiveCell.Offset(4, 0).Value = txtCP
ActiveCell.Offset(5, 0).Value = txtVille
ActiveCell.Offset(6, 0).Value = txtFixe
ActiveCell.Offset(7, 0).Value = txtPortable
ActiveCell.Offset(11, -3).Value = txtCommentaire
'Range("D8") = CLng(frmSaisie.txtCP) 'Format nombre
'Range("D10") = CLngl(frmSaisie.txtFixe) 'Format nombre
'Range("D11") = CLng(frmSaisie.txtPortable) 'Format nombre


MsgBox "La fiche client a bien été créée", vbOKOnly + vbInformation, "CONFIRMATION"

Unload Me


Cdlt
 
Bon voici donc en concret l'exécution du formulaire :

Et le résultat dans la feuille Excel avec les 3 lignes en commantaire :

Alors je ne comprends pas l'utilité de ces lignes car elles refont l'injection des données des lignes :
ActiveCell.Offset(4, 0).Value = txtCP
ActiveCell.Offset(6, 0).Value = txtFixe
ActiveCell.Offset(7, 0).Value = txtPortable

Je viens de tester en mettant ces lignes en commentaire et en enlevant le commentaire des 3 dernières et tout fonctionne correctement alors


Il y a donc un 'conflit' entre les commandes (que j'ai aussi eu maintenant :

ActiveCell.Offset(4, 0).Value = txtCP et Range("D8") = CLng(frmSaisie.txtCP)

Conclusion : en remplaçant la première commande avec ActiveCell.Offset(4, 0).Value = CLng(txtCP) cela fonctionne parfaitement.

Cdlt.
 
Cela fonctionne parfaitement. Un grand merci. Est-ce que je peux abuser?
J'ai un autre souci. Certaines personnes ont soit un portable, soit un fixe.
Quand je laisse un de ces 2 champs vides, j'ai une "incompatibilité de type"
Est-il possible de corriger cette anomalie?
Cdlt
 
Bonjour,
Il suffit de contrôler si le textbox n'est pas vide avant d'inscrire dans le fichier, comme ceci :
If txtFixe <> "" Then
ActiveCell.Offset(6, 0).Value = txtFixe
End If
If txtPortable <> "" Then
ActiveCell.Offset(7, 0).Value = txtPortable
End If

Cdlt.
 
- 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
6
Affichages
799
J
Réponses
3
Affichages
1 K
Janis
J
N
Réponses
2
Affichages
635
N
A
Réponses
5
Affichages
1 K
abrabr
A
R
Réponses
5
Affichages
2 K
Remteyss
R
G
Réponses
6
Affichages
2 K
G@vroche
G
B
Réponses
6
Affichages
2 K
BOUBRED
B
L
Réponses
1
Affichages
1 K
Lucien31
L
F
Réponses
5
Affichages
2 K
Fariri
F
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…