Problème avec MsgBox excel 2010 Windows 8

Résolu/Fermé
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015 - 12 déc. 2013 à 23:14
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015 - 15 déc. 2013 à 07:50
Bonjour, Merci à l'avance de votre aide je ne sais que copier et légèrement modifier les codes.
Mais grâce a vous le travail du club est plus simple.
En 1er Avec Private Sub Worksheet_Change(ByVal Target As Range) quand le nombre de lettres dépassent (colonne "B") la quantité prévue dans le Code le MsgBox s'affiche normalement mais a l'effacement du contenue en "B"une fenêtre erreur d'exécution '13' Incompatibilité de type s'ouvre. La ligne If Len(Target) > 25 Then devient JAUNE
En 2éme Colonne H11:H55 J'aimerais un message explication si l'on écrit couple ou COUPLE
Je joins un model et espère des réponses avec explications si possible
MERCI À L'AVANCE
micheleliane
https://www.cjoint.com/?0Lmxe35eopi
A voir également:

11 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
13 déc. 2013 à 05:45
bonjour
D'abord sous la ligne "Option Explicit" en haut du module
Ecrivez ceci "Option Compare Text" pour ne faire faire de différence entre les majuscules et les minuscules.

Votre problème vient des cellules fusionnées, j'ai donc remplacé Target par Activecell
Private Sub Worksheet_Change(ByVal Target As Range)
'Test pour la colonne B
If Target.Column = 2 Then
If Len(ActiveCell) > 25 Then
MsgBox "Attention le Champ ne doit pas DEPASSER LE CADRE"
Target.Select
End If
End If
If Target.Column = 8 And Target.Value = "Couple" Then MsgBox "affichage de votre texte"
End Sub
Bonne journée
cdlt
0
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015
13 déc. 2013 à 08:39
Bonjour Frenchie83 Merci de ta réponse rapide

pour minuscule et majuscule cela fonctionne
mais pour la colonne "B" le message ne s'affiche pas
et l'Erreur a l'effacement se fait sur toutes les colonnes (peut être que cela se faisait avant)
je joint le dossier avec les modifications que j'ai faite
Merci à l'avance de se pencher sur mon problème
micheleliane

https://www.cjoint.com/?0LniFd82n22
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
13 déc. 2013 à 12:09
Bonjour,
Petite erreur avec ActiveCell ce n'est plus le contenu de Target mais celui de la nouvelle cellule.
Dans certains cas, Target est considérer comme Range donc vaut mieux spécifier que c'est sont contenu que l'ont veux tester.
J'ai testé..
Private Sub Worksheet_Change(ByVal Target As Range)
    'Test pour la colonne B
    If Target.Column = 2 Then
        If Len(Target.Value) > 25 Then
            MsgBox "Attention le Champ ne doit pas DEPASSER LE CADRE"
            Application.EnableEvents = False
            Target.Value = ""
            Target.Select
            Application.EnableEvents = True
        End If
    ElseIf Target.Column = 8 And Target.Value = "Couple" Then
        MsgBox "affichage de votre texte"
    End If
End Sub

Et ça devrait fonctionner.
A+

0
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015
13 déc. 2013 à 13:23
Bonjour,lermite222 et Frenchie83

Merci à tous de votre aide cela fonctionne
Mais pour la colonne "B" l'Erreur à l'effacement se fait, quand on efface une ligne qui a moins que les lignes demandées
J'ai calculé la longueur de la colonne "B" en majuscule si cela est écrit en minuscule il est plus long aussi le texte peut-il restais.Pour cela j'ai mis en arrêt ('Target.Value = "")
J'espère que cela ne gêne pas.
Je joins le dossier avec les modifications
Merci à l'avance
micheleliane

https://www.cjoint.com/?0LnnqHq0NP3
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
14 déc. 2013 à 10:08
Bonjour
Comme je vous l'avais dit précédemment, les cellules fusionnées gênent considérablement, pour contourner le problème, je supprime la fusion juste après le contrôle de la colonne B, et je re-fusionne les cellules en sortie de programme.
Private Sub Worksheet_Change(ByVal Target As Range)
'Test pour la colonne B
If Target.Column = 2 Then
Target.MergeCells = False
On Error GoTo Sortie
If Len(Target.Value) > 35 Then
MsgBox "Attention le Champ ne doit pas DEPASSER LE CADRE"
Application.EnableEvents = False
Target.Value = ""
Target.Select
Application.EnableEvents = True
End If
ElseIf Target.Column = 8 Then
If Target.Value = "Couple" Then
MsgBox "affichage de votre texte"
End If
Else: Exit Sub
End If
Sortie:
Target.Resize(1, 3).MergeCells = True
End Sub
Essayez et dites-nous si ça fonctionne bien.
bonne journée
cdlt
0
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015
14 déc. 2013 à 14:01
Bonjour, et MERCI pour le temps et le travail que je vous donne il restait un incident si j'efface le mot couple. Un message apparaît
La sélection contient plusieurs valeurs. La fusion des cellules ne conservera que les données de la cellule supérieure gauche PUIS APRÈS
Erreur d'exécution'1004':
Impossible de définir la propriété MergeCells de le classe Range et la ligne
Target.Resize(1, 3).MergeCells = True se met en jaune
Après plusieurs essais de toutes sortent j'ai enlevé cette ligne et tout fonctionnent
Pouvez-vous me dire si cela ne gêne pas .Et me rappeler comment faire pour marquer résolue car je ne trouve pas ou,afin de pouvoir le faire si l'effacement de la ligne ne crée pas de proplème.Pour moi cela fonctionne.
MERCI MERCI MERCI et encore MERCI
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 14/12/2013 à 16:04
Re,
Avant que tu mette résolu (en haut gauche de ta question initiale) voir ce modèle
* Les colonnes B,C et D peuvent êtres redimensionnées comme ont veut.
* Les propriétés des cellules, notamment la grandeur Police, peuvent êtres modifiées.
* Donne toujours la largeur disponible dans la cellule fusionnée.
* J'aurais préféré employer un TexBox sur la feuille (ou un label) mais les contrôles OCX sur feuille, en Excel, présente beaucoup de bugs incontournable j'ai donc employé un UF.
* Voir exemple
Note: les textes déjà écrit ne sont pas tester en cas de redimensionnement de la largueur des colonnes.
Tu dis.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015
14 déc. 2013 à 19:33
Bonsoir, MERCI est un trop petit mot pour te remercier

J'ai modifié la grandeur des colonnes tous fonctionne à merveille.
Puis je stopper la fonction 'Target.Value = "" si besoin
Peux-tu me dire si cela fonctionneras même avec des versions Excel précédente
Et si cela est possible quelques explications
Tu as fait un travail fantastique je te remercie encore ainsi que toute votre équipe pour ceux que vous faite pour nous.
J'ai vue ou il fallait marquer résolue est je le ferais tu peux en être sur

micheleliane
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 14/12/2013 à 23:45
Puis je stopper la fonction 'Target.Value = "" si besoin => OUI
si cela fonctionneras même avec des versions Excel précédente => Sans problème
quelques explications =>
Emploi d'un label avec les propriétés
=> WordWrap = False
=> AutoSize = True
Quand ont met du texte dans le label il prend la largeur du texte, suffit donc de comparer sa longueur à la longueur disponnible.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015
15 déc. 2013 à 07:40
Bonjour à tous et grand MERCI en particulier à lermite222 et Frenchie83

Qui on travaille sur ce document, vous m'avez offert mon cadeau de noël

Encore MERCI À lermite222 et Frenchie83 ET TOUTE L'ÉQUIPE

En effet le peut que je fais et pris pour le plus gros dans le FORUM

BONNES FÊTES DE FIN D'ANNÉE.

micheleliane
0
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015
15 déc. 2013 à 07:50
re Bonjour,

Dans mes remerciements et VOEUX de FIN D'ANNÉE JE N'OUBLIE PAS

pijaku et michel qui m'ont aidé précédemment
0