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 :

Pas de passage d'une macro à une autre dans un même module [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut Pas de passage d'une macro à une autre dans un même module


    Voici mon problème :

    J'ai le code ci-dessous qui ne marche pas

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    Sub Dates()
        For j = 2 To 99999
            Cells(j, 10).NumberFormat = "m/d/yyyy"
            Cells(j, 11).NumberFormat = "m/d/yyyy"
            Cells(j, 12).NumberFormat = "m/d/yyyy"
        Next j
        FormatDate
    End Sub
    Sub FormatDate()
     Application.ScreenUpdating = False
        For i = 1 To Range("A65535").End(xlUp).Row
            If Cells(i, 1) Like "##.##/####" Or Cells(i, 1) Like "##/##.####" Or Cells(i, 1) Like "##.##.####" Or Cells(i, 1) Like "##.##.##" Or Cells(i, 1) Like "##.##/##" Or Cells(i, 1) Like "##/##.##" Then
                Cells(i, 1).NumberFormat = "@": Cells(i, 1) = Replace(Cells(i, 1), ".", "/"): Cells(i, 1).NumberFormat = "m/d/yyyy"
            End If
        Next i
          RemplacePresse
     Application.ScreenUpdating = True
    End Sub
    Sub RemplacePresse()
    On Error Resume Next
      Columns("B:B").Replace What:="presse", Replacement:="", LookAt:=xlPart, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
      ReplaceFormat:=False
      On Error GoTo 0
        RemplaceText1
    End Sub
    Sub RemplaceText1()
    On Error Resume Next
      Columns("B:B").Replace What:="à chambre fixe", Replacement:="", LookAt:=xlPart, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
      ReplaceFormat:=False
      On Error GoTo 0
        RemplaceText2
    End Sub
    Sub RemplaceText2()
    On Error Resume Next
      Columns("B:B").Replace What:="HAUTE DENSITE", Replacement:="", LookAt:=xlPart, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
      ReplaceFormat:=False
      On Error GoTo 0
        RemplaceText3
    End Sub
    Sub RemplaceText3()
    On Error Resume Next
      Columns("B:B").Replace What:="Bale Pack", Replacement:="", LookAt:=xlPart, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
      ReplaceFormat:=False
      On Error GoTo 0
        RemplaceText4
    End Sub
    Sub RemplaceText4()
    On Error Resume Next
      Columns("B:B").Replace What:="HD", Replacement:="", LookAt:=xlPart, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
      ReplaceFormat:=False
      On Error GoTo 0
        SupEspace
    End Sub
    Sub SupEspace()
    'Dim i As Long
       For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
           Cells(i, 2) = Trim(WS.Cells(i, 2))
       Next i
        InterLigne
    End Sub
    Sub SupInterLigne()
        For i = 2 To Range("A60000").End(xlUp).Row
            If Range("A" & i).Value = "" Then
               Rows(i).Delete
            End If
        Next i
    End Sub

    J'ai la première partie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Dates()
        For j = 2 To 99999
            Cells(j, 10).NumberFormat = "m/d/yyyy"
            Cells(j, 11).NumberFormat = "m/d/yyyy"
            Cells(j, 12).NumberFormat = "m/d/yyyy"
        Next j
        FormatDate
    End Sub
    Qui a l'ai de marcher mais sa passe pas à la suite

    Une idée

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Je n'ai pas regarder la suite mais pour la premiere partie, tu peux éviter la boucle avec la méthode ci dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub Dates()
     
        Range("J2:L9999").NumberFormat = "m/d/yyyy"
     
        FormatDate
     
    End Sub

  3. #3
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    Bien vu mais malheureusement, sa ne résous pas le problème

    Mais je me pose la question si c'est un problème de passage d'une partie du module a une autre ou alors si c'est une partie qui ne fonctionne pas ?

  4. #4
    Membre expérimenté
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Par défaut
    Bonjour, je viens de tester chez moi en plaçant ton code dans un module et je n'ai eu aucun problème.
    As tu essayé de dérouler en pas à pas pour voir ce qu'il se passe?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je n'ai peut-être pas tout compris, mais dans cette procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub SupEspace()
    'Dim i As Long
       For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
           Cells(i, 2) = Trim(WS.Cells(i, 2))
       Next i
        InterLigne
    End Sub
    On trouve un appel vers la procédure "Interligne()" qui à priori n'existe pas, par contre il existe une procédure "SupInterLigne()" ?

  6. #6
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    Oui excuse j'ai modifié mais sa marche toujours pas

  7. #7
    Invité
    Invité(e)
    Par défaut
    Si je lance votre procédure "Sub Dates()" sur une feuille vide et après avoir rectifié le nom "SupInterLigne" comme indiqué dans la réponse précédente, les procédures se lancent bien les unes après les autres et je n'ai aucun message d'erreur.

    Mais ce n'est pas une preuve. Il faudrait un exemple de votre fichier, car il suffit d'une donnée non conforme, par exemple.

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

Discussions similaires

  1. [Tableaux] passage de variables d'une page à une autre
    Par programos dans le forum Langage
    Réponses: 9
    Dernier message: 13/03/2007, 18h31
  2. passage des variables d'une classe à une autre
    Par zibou7 dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2007, 16h46
  3. Réponses: 6
    Dernier message: 29/09/2006, 10h18
  4. Passage de paramètre d'une classe à une autre
    Par semenzato dans le forum C++
    Réponses: 3
    Dernier message: 21/09/2005, 13h59
  5. [C#] Passage de valeur d'une fenêtre à une autre
    Par groum999 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/09/2004, 14h12

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