Problème avec MsgBox excel 2010 Windows 8

Résolu
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

11 réponses

  1. 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
    1. 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
      1. Contributeur
        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 .
        1. 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
          1. Contributeur
            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 .
            1. 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
              1. 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
                1. 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
                  1. Contributeur
                    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+

                    1. 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
                      1. 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