IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Une partie de ma macro ne s'éxecute pas


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 113
    Par défaut Une partie de ma macro ne s'éxecute pas
    Bonjour chers développeurs,

    SVP j'ai un problème et je ne sais pas pourquoi la macro ne s'éxécute pqs complétement :

    Dans un bouton d'un userform on demande d'entrer l'ancien nom d'une zone pour la remplacer avec le nouveau nom et je dois actualiser le nouveau nom dans plusieurs feuilles , toutes les feuilles enregistrent ce nouveau changement sauf la feuille Responsable et je ne sais pas pourquoi même si je suis partie avec la même logique .

    La liste des noms dans la feuille responsable se trouve dans la colonne 5 "E"

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Private Sub CommandButton1_Click()
    Unload Me
    Sheets("Responsable").Activate
    For S = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If Cells(S, 5) = TextBox1.Value Then Cells(S, 5) = TextBox2.Value
    Next S
     
     
    Sheets("AuditMensuel").Activate
    For I = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If Cells(I, 1) = TextBox1.Value Then Cells(I, 1) = TextBox2.Value
    Next I
     
    Sheets("AuditMensuelilot").Activate
    For K = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If Cells(K, 1) = TextBox1.Value Then Cells(K, 1) = TextBox2.Value
    Next K
     
    Sheets("AuditMensuelilot").Activate
    For l = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If Cells(l, 15) = TextBox1.Value Then Cells(l, 15) = TextBox2.Value
    Next l
    Sheets("AuditMensuelilot").Activate
    For m = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If Cells(m, 29) = TextBox1.Value Then Cells(m, 29) = TextBox2.Value
    Next m
     
    Sheets("AuditMensuelilot").Activate
    For N = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If Cells(N, 43) = TextBox1.Value Then Cells(N, 43) = TextBox2.Value
    Next N
     
    Sheets("AuditMensuelilot").Activate
    For P = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If Cells(P, 57) = TextBox1.Value Then Cells(P, 57) = TextBox2.Value
    Next P
     
     
    Sheets("MapResponsibility").Select
     
    MsgBox ("Changer le nom de la zone que vous venez de modifier dans la Map Résultat ! ")
     
    End Sub

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Avec un fichier on pourrait éviter les devinettes...
    Pas dû à une différence majuscule/minuscule ?
    eric

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 115
    Par défaut
    Bonjour

    Avec le code suivant, je suis plutôt surpris que le code fonctionne sur les autres feuilles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Unload Me
    Sheets("Responsable").Activate
    For S = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If Cells(S, 5) = TextBox1.Value Then Cells(S, 5) = TextBox2.Value
    Next S
    Si "Unload Me" décharge le UserForm, alors, a quoi font référence les TextBox1 et TextBox2?
    Ne faudrait-il pas mettre les TextBox1.Text et TextBox2.Text dans des variables avant le "Unload Me"?

    @+

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 113
    Par défaut
    j'ai déplacé le Unload Me en bas , j'ai changé les lettres toutes en majuscule mais sans aucun résultat ,

    N.B: cette feuille de Responsable est appelée dans une autre feuille ; je ne sais pas si cela a un effet sur le code ou quoi exactement

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$5" Then 'B5 est le nom de la zone auditée
          For I = 4 To Worksheets("Responsable").Range("E" & Rows.Count).End(xlUp).Row
            If Range("B5").Value = Worksheets("Responsable").Cells(I, 5).Value Then
                Range("B6").Value = Worksheets("Responsable").Range("F" & I).Value 'récupère la valeur de la cellule
                Exit For
            End If
          Next
     
    End If
    End Sub

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    pour t'affranchir de problème de la case et bloquer le Change met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        For S = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
            If UCase(Cells(S, 5)) = UCase(TextBox1.Value) Then
                Application.EnableEvents = False
                Cells(S, 5) = TextBox2.Value
                Application.EnableEvents = True
            End If
        Next S
    eric

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 113
    Par défaut
    Bonsoir eriic , j'ai essayé mais sans résultat c vraiment bizarre

Discussions similaires

  1. [XL-2003] J'ai une partie de macro qui marche pas
    Par Alexandra 01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/10/2010, 14h29
  2. [XL-2003] exécuter une partie d'une macro
    Par djoumusic dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/12/2009, 11h21
  3. [XL-2003] Macro pour exporter une partie de feuille
    Par Nico123 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/11/2009, 11h19
  4. Réponses: 1
    Dernier message: 31/03/2008, 08h48
  5. Macro : Copier une partie de la cellule
    Par jeanjean0403 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/08/2007, 12h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo