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 :

Problème de code VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Par défaut Problème de code VBA
    Voila ma question est simple, j'ai écris ce premier code :

    Code : 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
    Sub Bouton1_Cliquer()
        
        Sheets("Data").Range("A4:S1000").Copy Destination:=Sheets("Trie Pareto").Range("A2")
    
        Sheets("Trie Pareto").Select
        For i = 1100 To 2 Step -1
        If Sheets("Trie Pareto").Range("D" & i).Value <> "Curative urgente" Then Rows(i).Delete
        Next i
        
        Dim M As Integer
        Dim L As Integer
    
        For L = 2 To Range("C2").End(xlDown).Row
        If Sheets("Trie Pareto").Cells(L, 3).Value <> "" Then
        M = L
        End If
        Next L
        
        Sheets("Trie Pareto").Range("C2:C" & L).Copy Destination:=Sheets("Calcul Pareto").Range("C2")
        Sheets("Trie Pareto").Range("E2:E" & L).Copy Destination:=Sheets("Calcul Pareto").Range("D2")
        Sheets("Trie Pareto").Range("I2:I" & L).Copy Destination:=Sheets("Calcul Pareto").Range("E2")
        Sheets("Trie Pareto").Range("J2:J" & L).Copy Destination:=Sheets("Calcul Pareto").Range("F2")
        Sheets("Trie Pareto").Range("Q2:Q" & L).Copy Destination:=Sheets("Calcul Pareto").Range("G2")
        
        Sheets("Calcul Pareto").Select
        
    End Sub
    Puis après j'ai modifié le code car la fonction en rouge dans le premier code étais super longue et j'ai donc fais ce code la :

    Code : 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
    Sub Bouton1_Cliquer()
        
        Sheets("Data").Range("A4:S1000").Copy Destination:=Sheets("Trie Pareto").Range("A4")
        
        Sheets("Trie Pareto").Range("A1").Value = "Type de maintenance"
        Sheets("Trie Pareto").Range("A2").Value = "Curative urgente"
    
        Sheets("Trie Pareto").Range("A3:S1000").AdvancedFilter _
        Action:=xlFilterCopy, _
        CriteriaRange:=Sheets("Trie Pareto").Range("A1:A2"), _
        CopyToRange:=Sheets("Trie Pareto").Range("U3:AM3"), _
        Unique:=False
    
        Dim y As Integer
        Dim h As Integer
    
        For h = 4 To Range("W4").End(xlDown).Row
        If Sheets("Trie Pareto").Cells(h, 23).Value <> "" Then
        y = h
        End If
        Next h
        
        Sheets("Trie Pareto").Range("W4:W" & y).Copy Destination:=Sheets("Calcul Pareto").Range("C2")
        Sheets("Trie Pareto").Range("X4:X" & y).Copy Destination:=Sheets("Calcul Pareto").Range("D2")
        Sheets("Trie Pareto").Range("AC4:AC" & y).Copy Destination:=Sheets("Calcul Pareto").Range("E2")
        Sheets("Trie Pareto").Range("AD4:AD" & y).Copy Destination:=Sheets("Calcul Pareto").Range("F2")
        Sheets("Trie Pareto").Range("AK4:AK" & y).Copy Destination:=Sheets("Calcul Pareto").Range("G2")
        
        Sheets("Calcul Pareto").Select
        
    End Sub
    Or maintenant les lignes de code en bleu déconnent alors que celle du premier code fonctionnaient. Et je ne comprend pas pourquoi.
    Merci de votre aide.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    C'est peut-être tout simplement parce-que ta fenêtre active a changé depuis que tu as modifié ton code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For h = 4 To Range("W4").End(xlDown).Row
    Pour le VBA si tu ne précises pas la feuille et le classeur, il travaille sur la cellule de la feuille active, ce qui est logique.
    Si tu dis à quelqu'un par téléphone ferme la porte de la pièce et que tu ne lui précises pas de quelle pièce il s'agit, il fermera la porte de la pièce dans laquelle il se trouve, en espérant qu'il n'y en ait pas deux
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Par défaut
    Erf merci , pourtant j'ai cherché d’où pouvait venir le problème

    Merci Corona

  4. #4
    Membre averti
    Homme Profil pro
    réseaux électriques
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : réseaux électriques

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    et tu peux faire du ménage :
    Code : 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
     
    Sub Bouton1_Cliquer()
    With Sheets("Trie Pareto")
     
        Sheets("Data").Range("A4:S1000").Copy Destination:=.Range("A4")
     
        .Range("A1").Value = "Type de maintenance"
        .Range("A2").Value = "Curative urgente"
     
        .Range("A3:S1000").AdvancedFilter _
        Action:=xlFilterCopy, _
        CriteriaRange:=.Range("A1:A2"), _
        CopyToRange:=.Range("U3:AM3"), _
        Unique:=False
     
        Dim y As Integer
        Dim h As Integer
     
        For h = 4 To Range("W4").End(xlDown).Row
            If .Cells(h, 23).Value <> "" Then
                y = h
            End If
        Next h
     
        .Range("W4:W" & y).Copy Destination:=Sheets("Calcul Pareto").Range("C2")
        .Range("X4:X" & y).Copy Destination:=Sheets("Calcul Pareto").Range("D2")
        .Range("AC4:AC" & y).Copy Destination:=Sheets("Calcul Pareto").Range("E2")
        .Range("AD4:AD" & y).Copy Destination:=Sheets("Calcul Pareto").Range("F2")
        .Range("AK4:AK" & y).Copy Destination:=Sheets("Calcul Pareto").Range("G2")
    End With
     
    Sheets("Calcul Pareto").Select
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Problème de code VBA
    Par kbrice dans le forum Access
    Réponses: 1
    Dernier message: 29/04/2015, 19h21
  2. [XL-2010] Problème de code VBA
    Par BENNASR dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/01/2015, 16h36
  3. [AC-2003] Problème de code vba ligne if surligné en jaune
    Par Piccou dans le forum VBA Access
    Réponses: 26
    Dernier message: 07/08/2009, 09h19

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