Problème avec MsgBox excel 2010 Windows 8

Résolu
micheleliane Messages postés 77 Statut Membre -  
micheleliane Messages postés 77 Statut Membre -
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. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
  2. micheleliane Messages postés 77 Statut Membre
     
    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
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  4. micheleliane Messages postés 77 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
  7. micheleliane Messages postés 77 Statut Membre
     
    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
  8. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  9. micheleliane Messages postés 77 Statut Membre
     
    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
  10. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  11. micheleliane Messages postés 77 Statut Membre
     
    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
  12. micheleliane Messages postés 77 Statut Membre
     
    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