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 :

Code VBA pour demander à la macro d'aller rechercher un chemin d'accès afin d'ouvrir un fichier XLS


Sujet :

Macros et VBA Excel

  1. #21
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 2
    Points
    2
    Par défaut
    J'ai remlacé tous les "Mois" par "leMois" mais toujours le même message avec "leMois" surligné.


    Cordialement,
    Clair

  2. #22
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Peut être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Mois < 0 Then Mois=Mois + 12
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #23
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 2
    Points
    2
    Par défaut
    Ha cool, ça ne bloque plus par contre quand j'ai renseigné le ficher RATIO à ouvir c'est le code suivant qui stipule un DEBOGAGE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mois = CInt(Mid(Fich, InStr(1, Fich, ".") - 2, 2)) - 12

    Cordialement,
    Clair

  4. #24
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Quel est le message d'erreur. Quel est le nom du fichier choisi ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #25
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 2
    Points
    2
    Par défaut
    Le message d'erreur est le suivant :

    Erreur d'exécution '13'
    Incompatibilité de type
    Puis je clique sur débogage et ça me met en surlignage le code cité précedemment.

    Et le nom du fichier choisi est : "Ratio_tx_AA_suivi_2011_2012_09"


    Cordialement,
    Clair

  6. #26
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Le nom de fichier n'a pas d'extension (.xls par exemple) ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  7. #27
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 2
    Points
    2
    Par défaut
    oui pardon : .XLS


    Cordialement,
    Clair

  8. #28
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Il est possible que ça twiste s'il y a un point dans le chemin. Remplace la ligne par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mois = CInt(Mid(Fich, InStrRev(Fich, ".") - 2, 2)) - 9
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  9. #29
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 2
    Points
    2
    Par défaut
    Super ça marche, merci beaucoup Daniel !

    Mais on en revient toujours au même problème. Si je choisie le fichier "Ratio_tx_AA_suivi_2011_20212_10" (donc du mois d'octobre), la macro ne reconnaît pas le fichier et la recherchev ne change pas de colonne. C'est-à-dire qu'elle devrait se faire sur les colonnes AH; AI; AK et AL.

    Je suis désolée de vous prendre autant la tête !

    Une inputbox serait-elle envisageable ?


    Cordialement,
    Clair

  10. #30
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Une inputbox serait-elle envisageable ?
    oui, bien sûr, mais à mon avis, le problème est ailleurs. Peux-tu poster le code que tu utilises ? et le chemin complet du fichier choisi.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  11. #31
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 2
    Points
    2
    Par défaut
    Peux-tu poster le code que tu utilises ?
    De quel code parlez-vous ?

    Le chemin complet est le suivant :
    C:\Documents and Settings\claire.nonglaton\Mes documents\E-mail Important\TX AA\Année_2012\RATIOS et après je choisi le fichier du mois concerné donc par exemple "Ratio_tx_AA_suivi_2011_20212_10"

    Cordialement,
    Clair

  12. #32
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Je veux dire la macro.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  13. #33
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 2
    Points
    2
    Par défaut
    Ha oui pardon, celle là

    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
    Dim Wbk As Workbook
    Dim Fich As Variant
     
    Application.ScreenUpdating = False
    Fich = Application.GetOpenFilename(("Excel Files (*.xls*), *.xls*"))
    If Fich <> False Then
        Set Wbk = Workbooks.Open(Fich)
        With ThisWorkbook.Worksheets("Détails Site")
            With .Range("X4:X3427")
                .FormulaR1C1 = "=VLOOKUP(RC[-16],'[" & Wbk.Name & "]Rapport Final'!C8:C15,8,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
            With .Range("Y4:Y3427")
                .FormulaR1C1 = "=VLOOKUP(RC[-17],'[" & Wbk.Name & "]Rapport Final'!C8:C18,11,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
            With .Range("AA4:AA3427")
                .FormulaR1C1 = "=VLOOKUP(RC[-19],'[" & Wbk.Name & "]Rapport Final'!C8:C20,13,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
            With .Range("AB4:AB3427")
                .FormulaR1C1 = "=VLOOKUP(RC[-20],'[" & Wbk.Name & "]Rapport Final'!C8:C23,16,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
     
        End With
        Wbk.Close False
        Set Wbk = Nothing
    End If
    End Sub
    ou celle-ci :

    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
    Dim Wbk As Workbook
    Dim Fich As Variant
    Dim Mois As Integer
    Dim Plage As String
     
    Application.ScreenUpdating = False
    Fich = Application.GetOpenFilename(("Excel Files (*.xls*), *.xls*"))
    Mois = CInt(Mid(Fich, InStrRev(Fich, ".") - 2, 2)) - 9
    If Mois < 0 Then Mois = Mois + 12
    If Fich <> False Then
        Set Wbk = Workbooks.Open(Fich)
        With ThisWorkbook.Worksheets("Détails Site")
            With .Range("X5:X3427").Offset(, Mois * 10)
                .FormulaR1C1 = "=VLOOKUP(RC[-16],'[" & Wbk.Name & "]Rapport Final'!C8:C15,8,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
            With .Range("Y5:Y3427").Offset(, Mois * 10)
                .FormulaR1C1 = "=VLOOKUP(RC[-17],'[" & Wbk.Name & "]Rapport Final'!C8:C18,11,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
            With .Range("AA4:AA3427").Offset(, Mois * 10)
                .FormulaR1C1 = "=VLOOKUP(RC[-19],'[" & Wbk.Name & "]Rapport Final'!C8:C20,13,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
     
            With .Range("AB4:AB3427").Offset(, Mois * 10)
                .FormulaR1C1 = "=VLOOKUP(RC[-20],'[" & Wbk.Name & "]Rapport Final'!C8:C23,16,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
        End With
        Wbk.Close False
        Set Wbk = Nothing
    End If
    End Sub
    Cordialement,
    Clair

  14. #34
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Je ne sais pas. Celle qui ne décale pas quand on est avec le mois d'octobre.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  15. #35
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 2
    Points
    2
    Par défaut
    Bonjour Daniel,

    Les deux macros transmisent hier marchent mais toutes les deux ne décalent pas quand on est avec le mois d'octobre.


    Cordialement,
    Claire

  16. #36
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Si tu le veux bien, et comme je ne peux pas comparer les diverses macros, on va repartir avec celle-ci. A l'exécution, deux msgboxes vont s'afficher :
    - la variable "Mois" (merci mercatog )
    -l'adresse de la première plage du mois d'octobre (colonne AH)
    Merci de poster ce que les deux msgbox affichent ainsi que le nom du fichier :

    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
    Sub Test4()
    'Réf. Fichier de base.xls
    Dim Wbk As Workbook
    Dim Fich As Variant
    Dim Mois As Integer
    Dim Plage As String
     
    Application.ScreenUpdating = False
    Fich = Application.GetOpenFilename(("Excel Files (*.xls*), *.xls*"))
    Mois = CInt(Mid(Fich, InStrRev(Fich, ".") - 2, 2)) - 9
    If Mois < 0 Then Mois = Mois + 12
    MsgBox Mois
    If Fich <> False Then
        Set Wbk = Workbooks.Open(Fich)
        With ThisWorkbook.Worksheets("Détails Site")
            With .Range("X5:X3427").Offset(, Mois * 10)
                MsgBox .Address
                .FormulaR1C1 = "=VLOOKUP(RC[-16],'[" & Wbk.Name & "]Rapport Final'!C8:C15,8,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
            With .Range("Y5:Y3427").Offset(, Mois * 10)
                .FormulaR1C1 = "=VLOOKUP(RC[-17],'[" & Wbk.Name & "]Rapport Final'!C8:C18,11,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
            With .Range("AA4:AA3427").Offset(, Mois * 10)
                .FormulaR1C1 = "=VLOOKUP(RC[-19],'[" & Wbk.Name & "]Rapport Final'!C8:C20,13,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
     
            With .Range("AB4:AB3427").Offset(, Mois * 10)
                .FormulaR1C1 "=VLOOKUP(RC[-20],'[" & Wbk.Name & "]Rapport Final'!C8:C23,16,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
        End With
        Wbk.Close False
        Set Wbk = Nothing
    End If
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  17. #37
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 2
    Points
    2
    Par défaut
    Merci Daniel pour cet essaie !

    Alors la première Msgbox affiche : 0
    La deuxième Msgbox affiche : $X$5:$X$3427
    Le nom du fichier pour le mois d'octobre est le suivant : RATIO_tx_AA_suivi_2011_2012_10.XLS

    La deuxième Msgbox m'affiche les colonnes du mois de Septembre donc ça ne se décalle pas .


    Cordialement,
    Clair

  18. #38
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bon. On ne va pas s'obstiner. J'ai mis une inputbox :

    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
    Sub Test4()
    'Réf. Fichier de base.xls
    Dim Wbk As Workbook
    Dim Fich As Variant
    Dim Mois As Variant
    Dim Plage As String
     
    Application.ScreenUpdating = False
    Fich = Application.GetOpenFilename(("Excel Files (*.xls*), *.xls*"))
    'Mois = CInt(Mid(Fich, InStrRev(Fich, ".") - 2, 2)) - 9
    Mois = InputBox("entrez le numéro du mois")
    If IsNumeric(Mois) Then
        Mois = CInt(Mois) - 9
    Else
        MsgBox "Saisie incorrecte : " & Mois
        Exit Sub
    End If
    If Mois < 0 Then Mois = Mois + 12
    MsgBox Mois
    If Fich <> False Then
        Set Wbk = Workbooks.Open(Fich)
        With ThisWorkbook.Worksheets("Détails Site")
            With .Range("X5:X3427").Offset(, Mois * 10)
                MsgBox .Address
                .FormulaR1C1 = "=VLOOKUP(RC[-16],'[" & Wbk.Name & "]Rapport Final'!C8:C15,8,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
            With .Range("Y5:Y3427").Offset(, Mois * 10)
                .FormulaR1C1 = "=VLOOKUP(RC[-17],'[" & Wbk.Name & "]Rapport Final'!C8:C18,11,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
            With .Range("AA4:AA3427").Offset(, Mois * 10)
                .FormulaR1C1 = "=VLOOKUP(RC[-19],'[" & Wbk.Name & "]Rapport Final'!C8:C20,13,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
     
            With .Range("AB4:AB3427").Offset(, Mois * 10)
                .FormulaR1C1 "=VLOOKUP(RC[-20],'[" & Wbk.Name & "]Rapport Final'!C8:C23,16,FALSE)"
                .Value = .Value
                .Replace "#N/A", ""
            End With
        End With
        Wbk.Close False
        Set Wbk = Nothing
    End If
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

Discussions similaires

  1. Un code VBA pour récupérer un type de donnée ?
    Par KEROZEN dans le forum VBA Access
    Réponses: 22
    Dernier message: 26/09/2019, 11h12
  2. [Toutes versions] Macro ou code VBA pour effacer des caracteres et aller a la ligne dans un meme cellule
    Par ghisunit dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/04/2012, 15h29
  3. [VBA-A] Code vba pour inclure un formulaire Acces
    Par MadSquirrel dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/04/2006, 18h19
  4. Réponses: 3
    Dernier message: 06/09/2005, 10h27

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