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 :

Récupérer une valeur d'un autre fichier excel fermé via macro vba [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut Récupérer une valeur d'un autre fichier excel fermé via macro vba
    bonjour à vous,

    je souhaite dans un fichier, que j'ai créé et qui fonctionne tres bien, grâce à vos aides et conseils, faire un fichier de synthèse, dans un fichier excel.
    Voici le contexte :

    j'ai un fichier excel dans un dossier specifique, qui ne bougera pas , par exemple, dans "d:\mondossier\monfichier1.xlsm".

    dans ce fichier, j'ai 3 onglets :
    Nom : onglet2.JPG
Affichages : 256
Taille : 36,2 KoNom : onglet1.JPG
Affichages : 234
Taille : 23,6 Ko

    j'ai créé un autre fichier excel que j'ai appelé "fichier de synthese" dans lequel je souhaite voir les résultats qui se mettent à jour automatiquement, en fonction de la mise à jour des valeurs, dans chaque onglets, du premier fichier. Aussi j'aimerais qu'ils se mettent à jour, même si le fichier est fermé.

    Pour cela, j'ai vu un site disant que par formule c'etait impossible, mais par macro c'est "possible", mais j'ai du mal à comprendre.

    j'ai essayé d'arranger ce code, pour l'utiliser mais j'ai du mal à comprendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub ImporterDonneesSansOuvrir()
    Dim Cheminsource As String, Fichiersource As String
     
        Cheminsource = "d:\mondossier\"
        Fichiersource = "monfichier1.xlsm"
     
        ThisWorkbook.Names.Add "plage", _
                RefersTo:="='" & Cheminsource & "[" & Fichiersource & "]anomalie 1'!$D4"  'je prend la valeur d4 , de la feuille anomalie 1
     
            Worksheets("Feuil2").Range("D4").Value = "=plage"  '??  
    End Sub
    en fait si je comprend bien c'est une procedure permettant de prendre la valeur du fichier "mon fichier1" et je veux que la valeur de la feuille "anomalie 1" en d4 s'affiche dans mon fichire de synthese :
    Nom : synthese.png
Affichages : 297
Taille : 105,3 Ko

    et ceux meme si le fichier est fermé, c'est à dire si je consulte le fichire de synthese pour voir l'avancement, je vois les chiffres qui sont des mes autres fichiers.

    Merci beaucoup pour votre aide.
    Cordialement

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    le principe consiste à aller ouvrir le dossier fermer
    récupérer la valeur de la cellule A1 de chaque onglet et l'enregistrer A1 dans le classeur ouvert
    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
    Sub test()
    Dim wkA As Workbook, wkB As Workbook
    Dim Sh As Worksheet
    Application.ScreenUpdating = False
    Set wkA = ThisWorkbook 'ton dossier ouvert class1
    Workbooks.Open "C:\Users\DELL\Desktop\Class2.xlsm"  ' aller ouvrir l'onglet
    Set wkB = ActiveWorkbook ' la classeur ouvert prends le nom WkB
    X = 0
    For Each Sh In wkB.Sheets
    X = X + Sh.Range("A1")
    Next Sh
    wkA.Sheets("feuille1").Range("A1").Value = X
    wkB.Close True 'fermer le classeur
    Application.ScreenUpdating = True
    End Sub

  3. #3
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    bonjour,
    merci beaucoup.

    J'ai fais quelques tests et j'aurais une question:
    j'ai créé un bouton pour mettre à jour les chiffres et je me suis rendu compte qu'il me créé plusieurs onglets dans le mode developpeur, à chaque fois que je clique sur le bouton, afin de mettre à jour le chiffre, est ce normal ?

    Nom : onglet.JPG
Affichages : 204
Taille : 11,7 Ko

    merci bien

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    normalement ça viens d'autre chose
    le code fait simplement aller ouvrir le classeur récupérer la valeur de chaque onglet ; enregistre l'information et ferme le classeur
    personnellement je doute que ça vient d'un autre code
    pour s'assurer fait un test avec simplement ce code et deux classeurs test

  5. #5
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    bonjour,
    j'ai fais un debogage, cela provient de ce morceau de code :

    Nom : test.JPG
Affichages : 196
Taille : 17,6 Ko

    J'ai tenté de faire un "close" :
    Workbooks.Close "C:\xxxx\xxxxx\Documents\xxxxx\test\test.xlsm" ' aller ouvrir l'onglet

    mais il me met une erreur

    Nom : erreur.JPG
Affichages : 201
Taille : 17,4 Ko

    Nom : erreur2.JPG
Affichages : 200
Taille : 18,5 Ko

    si je met en commentaire le ".close" , il me remet toujours plusieurs onglets quand j'execute la macro.
    Nom : ongletsupp.JPG
Affichages : 194
Taille : 13,5 Ko


    Donc si j'ai bien compris, plusieurs onglets apparaissent, quand j'execute la macro, quand je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Workbooks.Open "C:\Users\cxxxxx\xxxxx\xxxxx\test\test.xlsm"  ' aller ouvrir l'onglet
    mais ce qui est bizarre c'est qu'a la fait je fais bien cela :

    wkB.Close True 'fermer le classeur

    Voici mon code en entier :

    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
     
    Sub test()
        Dim wkA As Workbook, wkB As Workbook
        Dim Sh As Worksheet
     
        Application.ScreenUpdating = False
        Set wkA = ThisWorkbook 'ton dossier ouvert class1
        Workbooks.Open "C:\cxxxxx\xxxxxx\xxxxxx\xxxxxx\test\test.xlsm"  ' aller ouvrir l'onglet
     
        Set wkB = ActiveWorkbook ' la classeur ouvert prends le nom WkB
        X = 0
        y = 0
        Z = 0
        a = 0
        b = 0
        c = 0
        d = 0
        e = 0
        f = 0
     
     
        For Each Sh In wkB.Sheets
         X = X + Sh.Range("G10")
         y = y + Sh.Range("G11")
         Z = Z + Sh.Range("G12")
         a = a + Sh.Range("G13")
         b = b + Sh.Range("G14")
         c = c + Sh.Range("G15")
         d = d + Sh.Range("G16")
         e = e + Sh.Range("G17")
         f = f + Sh.Range("G18")
     
        Next Sh
     
        'j'affiche dans un tableau les valeurs provenant d'un autres fichier, les valeurs se mettent bien à jour.
        wkA.Sheets("anomalie 1").Range("I4").Value = X
        wkA.Sheets("anomalie 1").Range("I5").Value = y
        wkA.Sheets("anomalie 1").Range("I6").Value = Z
        wkA.Sheets("anomalie 1").Range("I7").Value = a
        wkA.Sheets("anomalie 1").Range("I8").Value = b
        wkA.Sheets("anomalie 1").Range("I9").Value = c
        wkA.Sheets("anomalie 1").Range("I10").Value = d
        wkA.Sheets("anomalie 1").Range("I11").Value = e
        wkA.Sheets("anomalie 1").Range("I12").Value = f
     
        wkB.Close True 'fermer le classeur
        '  Workbooks.Close "C:\xxxxx\xxxxx\xxxxx\xxxxxx\test\test.xlsm"  ' aller ouvrir l'onglet
        Application.ScreenUpdating = True
    End Sub
     
    merci beaucoup

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\cxxxxx\xxxxxx\xxxxxx\xxxxxx\test\test.xlsm"  ' aller ouvrir l'onglet
    est ce que tu as un classeur Excel nommé test sous un répertoire nommé test aussi?
    si non pas besoin d'avoir deux fois test !! le code ouvre un classeur et non pas un onglet

  7. #7
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    Oui c'est eactement cela mais je pense pas c'est de là que vient le soucis ?
    Ce répertoire est juste un repertoire dans lequel j'ai mes deux fichiers tests.

    Oui je suis d'accord , mais j'ai l'impression qu'il ouvre mon classeur, le referme mais dans mon panneau vba je me retrouve avec plein d'onglet :

    Pièce jointe 635709

    En gros à chaque fois que je fais appel à ma macro en appuyant sur le bouton , un onglet s'ouvre et j'ai peur que cela ai une incidence par la suite ..
    je viens de tester une chose, si je ferme le fichier, les onglets ne sont plus là à la prochaine ouverture.

    Je viens de voir un autre soucis :

    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
     
     
     Dim wkA As Workbook, wkB As Workbook
        Dim Sh As Worksheet
     
        Application.ScreenUpdating = False
        Set wkA = ThisWorkbook 'ton dossier ouvert class1
        Workbooks.Open "C:\........ .xlsm"  ' aller ouvrir l'onglet
     
        Set wkB = ActiveWorkbook ' la classeur ouvert prends le nom WkB
        X = 0
     
        For Each Sh In wkB.Sheets
              X = X + Sh.Range("H11") 'incompatibilité de type
        Next Sh
     
        wkA.Sheets("Feuil1").Range("D2").Value = X
        wkB.Close True 'fermer le classeur
        Application.ScreenUpdating = True
    en fait je fais référence, dans mon autre fichier, à une cellule calculé( mais en fait c'est une référence à une valeur dans une autre feuille )
    la cellule H11 corespond à un calcul du genre :
    =Feuille5!P8

    par contre j'ai fais le test, quand c'est un chiffre normale il fonctionne.
    Y a t-il une fonction en vba pour pallier à ce soucis ?

    Merci

  8. #8
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    essayer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     For Each Sh In wkB.Sheets
              X = X + cdbl(Sh.Range("H11").value) 'incompatibilité de type
        Next Sh

  9. #9
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    Il me met une erreur ici :

    Nom : parametre.JPG
Affichages : 186
Taille : 21,1 Ko

    voila le message d'erreur que j'ai :
    Nom : erreurmessage.JPG
Affichages : 187
Taille : 16,9 Ko

    merci

  10. #10
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    déclare x

  11. #11
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    bonjour ,
    ça ne marche pas, ça marche mais lorsque je met mon fichier test.

    Nom : erreur type.png
Affichages : 184
Taille : 23,7 Ko

    Par contre je viens de faire une grande découverte, je pense que c'est mon "foreach" qui fout le boxon, pour rester polie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        For Each Sh In wkB.Sheets
     
          X = X + CDbl(Sh.Range("H12").Value)
        Next Sh
    en fait il parcourt toutes mes feuilles de mon fichier source, or je ne souhaite pas cela.
    Je veux juste, qu'il se connecte à mon fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      Application.ScreenUpdating = False
        Set wkA = ThisWorkbook 'ton dossier ouvert class1
        Workbooks.Open "C:\Users\xxxxxx\xxxxxxx\xxxxxx\test\monfichier source.xlsm"  ' le fichier source c'est celui dans lequel je vais cherchre les valeurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Set wkB = ActiveWorkbook ' la classeur ouvert prends le nom WkB, correspond à mon fichier de synthese dans lequel j'ai mon code vba
    et ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        For Each Sh In wkB.Sheets
          x = x + Sh.Range("H7") 'incompatibilité de type  --> ici je prend la valeur en h7 du fichier source
     
        Next Sh
    'je dois l'empecher de boucler sur les pages de mon fichiers sources, je dois juste préciser que c'est la 1ere feuille du fichire source
     
     
        wkA.Sheets("Feuil1").Range("D2").Value = x '--> et la , dans mon fichier de synthese je recupére ma valeur
     
        wkB.Close True 'fermer le classeur
        Application.ScreenUpdating = True
    ça marche avec mon fichier test, car il ne contient qu'une feuille, alors que le vrai fichier, celui de production, contien plusieurs feuilles , mais je ne dois prendres les valeurs situéses que sur la premiere feuille.

    Je dois donc enlever le foreach?
    Sinon la declaration en variant ça marche bien, merci
    .

  12. #12
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     For Each Sh In wkB.Sheets
          x = x + Sh.Range("H7") 'incompatibilité de type  --> ici je prend la valeur en h7 du fichier source
        Next Sh
    oui, il fait le parcourt de tous les onglets
    si tu veux exclure un onglet et prendre le reste des onglets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     For Each Sh In wkB.Sheets
    if sh.name <>"BASE" then
          x = x + Sh.Range("H7") 'incompatibilité de type  --> ici je prend la valeur en h7 du fichier source
      end if
      Next Sh
    si tu veux que une feuille que tu connais le nom , n'est pas besoin d'incrémenter X pour cumuler les valeurs, il suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          x = cdbl(sheets("nondetononglet").Range("H7").value)

  13. #13
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    je pense avoir trouvé, voici mon 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
    28
    29
    30
    31
     
     
    Sub UpdateValue()
        Dim wkA As Workbook, wkB As Workbook
        Dim Sh As Worksheet
     
     Dim x, y, z As Variant
     
     
        Application.ScreenUpdating = False
        Set wkA = ThisWorkbook 'ton dossier ouvert class1
        Workbooks.Open "c:\ccxxxxx\xxxxxx\TodolistFévrier 2023.xlsm"  ' là c'est mon fichier de production
     
        Set wkB = ActiveWorkbook ' la classeur ouvert prends le nom WkB
        x = 0
        y = 0  'j'ai déclaré les variable
        z = 0
     
        x = x + wkB.Worksheets("Checklist").Range("H16") ' je récupère mes valeurs qui m'interessent
        y = y + wkB.Worksheets("Checklist").Range("I11")
        z = z + wkB.Worksheets("Checklist").Range("L10")
     
        wkA.Sheets("Feuil1").Range("D2").Value = x
        wkA.Sheets("Feuil1").Range("D3").Value = y  'et je les met dans mon fichier de synthèse
     
        wkB.Close True 'fermer le classeur
     
        Application.ScreenUpdating = True
     
     
    End Sub
    est ce que je m'y prend bien?
    Merci ^^

  14. #14
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    admis avec félicitation des jury
    Bonne continuation

  15. #15
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    un grand MERCI à vous tous ^

    j'ai rempli une première partie de mon fichier et çà marche.
    toutefois, comme mon fichier est sur un serveur, et je dois recupérer 19 valeurs en fonction de 42 équipes, je crains que ça mouline un peu beaucoup.

    J'ai pensé à une chose, est possible de faire cela grace à powerquery, c'est à dire d'aller dans données -> obtenir les données -> à partir d'un fichier excel.
    Puis j'ai tenté de selectionné mon fichier:

    Nom : données.JPG
Affichages : 182
Taille : 42,8 Ko

    je selectionne la feuille "checlist" c'est dans celle ci que je souhaite récupérer les valeurs dans mon fichier de synthese :
    Nom : checklist.JPG
Affichages : 175
Taille : 18,9 Ko
    ici dans mon fichier de synthese, je sais pas si peux utiliser power query pour récupérer la valeur 110 et la valeur 0 , est possible?

    Un grand merci ^

  16. #16
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    peux tu insérer un tableau structuré dans la feuille souhaité ?
    deux ligne : la première pour l'entete des colnnes et une ligne pour les données à importer
    puis tu importe via powerquery tes données depuis ce tableau structuré

  17. #17
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    bonjour,

    finalement après concertation ça fera l'objet d'une évolution, j'ai beau regardé c'est un peu trop compliqué.

    Je suis face à un autre soucis, j'ai ce message qui apparait :
    Nom : procedure trop grande.JPG
Affichages : 165
Taille : 15,9 Ko
    j'etais un peu mort de rire quand j'ai vu ça mais ça m'embete un peu lol, je vous explique:

    j'ai répliquer 128 lignes de codes, en modifiant à chaque fois les noms des variables, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     Dim eq41_multi1, eq41_multi2, eq41_multi3 As Variant
    Dim eq41_DSdesaj1, eq41_DSdesaj2, eq41_DSdesaj3 As Variant
    .....
    ....
    ...
    je fais un copié dans notepad++, rechercher "eq41" je remplace par "eq42" et toutes mes variables change j'ai juste à modifier le nom du fichier.
    je vais essayer afin de voir ce que je peux faire, car mon principe, c'est que j'ai un bouton qui appel cette procédure et toutes mes colonnes sont censés se mettre à jour, là il m'en reste une dizaine ( 10 x 128lignes ) donc je vais voir.

    Je savais pas que l'on avait un nombre limité de ligne en vba sinon?

    Merci beaucoup en tout cas.

  18. #18
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    Finalement j'ai trouvé une alternative :
    Initialement j'ai la procédure "UpdateValue", j'ai donc créé la procedure "UpdateValue2" et j'ai pris un morceau de code de la 1ere procecdure et je l'ai mis dans la 2eme.

    j'ai créé une procedure "DemarrageTraitement" dans laquel je fais un : Call UpdateValue et Call UpdateValue2 et ça marche bien, je suis en train de tester en ce moment.
    Merci beaucoup pour votre aide en tout cas ^

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

Discussions similaires

  1. [XL-2016] Problème pour récupérer la valeur d'un autre fichier Excel
    Par zoom61 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/06/2021, 15h32
  2. Recherche d'une valeur dans un autre fichier excel
    Par Seb_33 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/02/2017, 19h21
  3. [XL-2010] combobox avec le contenu d'une plage d'un autre fichier Excel fermé
    Par modus57 dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 25/05/2015, 22h06
  4. Récupérer des valeurs dans un autre fichier excel fermé
    Par dominiqued dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/05/2014, 12h07
  5. [Toutes versions] Formule pour recuperer une valeur sur un autre fichier Excel
    Par bonilla dans le forum Excel
    Réponses: 2
    Dernier message: 26/06/2012, 11h19

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