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 :

recopie de formules excel avec incrémentation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Par défaut recopie de formules excel avec incrémentation
    Bonjour,

    J'ai une base de données avec des cellules qui vont rechercher dans d'autres classeurs Excel des données, de ce côté pas de problème.

    Formule simple de la cellule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ='N:\IMMOBILIER RESIDENTIEL\LOGEMENTS COLLECTIFS\[001.XLS]IDENTIFICATION IMMEUBLE'!$C$8
    Les classeurs sont tous désignés par le numéro (001, 002, ..., etc.)

    J'ai 500 fichiers et donc 500 lignes environ, et au lieu ligne après ligne de changer le numéro dans la formule ci-dessus pour qu'il aille chercher le classeur 02 etc..., existe t-il une fonction ou un code qui permet de remplacer le 001 dans la formule ci-dessus par la valeur inscrit dans la cellule de la première colonne ?

    Remarque : dans la base de données, la 1ère colonne correspond à l'identifiant numéraire de 001 à 500 par exemple.

    Suis-je clair ? (pas facile à expliquer)

    Merci d'avance
    Gerald

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Je te propose une minuscule macro VBA qui te le fera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Remplir_cellules()
        Dim i As Integer, numero As String
        For i = 1 To 500
            numero = i
            While Len(numero) < 3
                numero = "0" & numero
            Wend
            ThisWorkbook.Worksheets(1).Range("A" & i).Value = _
            "='N:\IMMOBILIER RESIDENTIEL\LOGEMENTS COLLECTIFS\[" & numero & _
            ".XLS]IDENTIFICATION IMMEUBLE'!$C$8"
        Next
    End Sub
    Tu l'exécutes une fois et voilà c'est fait. Ceci dit, cela te le fait de A1 jusqu'à A500: tu risque d'avoir besoin d'adapter.

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Par défaut Merci, c'est cool mais....
    Merci beaucoup de votre réponse rapide.

    J'ai essayé et adapter et çà marche!

    Par contre, j'ai encore besoin de vos compétences puisque qu'il faudrait améliorer encore.

    Je vous explique:

    le compteur i est une bonne idée, par contre les fichiers comporte des trous et ne suivent pas au n+1 tout le temps.

    Exemple 301, 302, 306, 308, 309 etc... du coup il me demande le chemin, ca c'est pas grave...

    Je n'avais pas trop compliqué au départ, mais il y a aussi des fichiers qui se nomment L01, L02 etc

    Dans ce fameux tableau de synthèse est référencé en première colonne le numéro de désignation correspondant au nom du fichier Excel à rappeller.

    Comment faire pour lui dire:
    - ligne après ligne, va chercher dans la colonne B (sur la même ligne), le numéro de référence, qui correspondra au nom du fichier à aller chercher??


    N:\\Immobilier Résidentiel\Logements individuels\[" référence de la colonne B" sur la même ligne.XLS]Identification immeuble'!$D$14"

    Merci d'avance ca me depanne trop

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 52
    Par défaut
    bonjour geraldmasteau,

    C'est une bonne idée ce référencement des classeur dans une partie du classeur de synthèse cela permet de "simplifier" le code car on peut alors se passer de la varable numéro

    ci-dessous une réadaptation du code doné par decondelite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Remplir_cellules()
        Dim i As Integer
        For i = 1 To 500
            'la boucle donée précédemment n'est plus nécessaire de meme que le compteur
                    ThisWorkbook.Worksheets(1).Range("A" & i).Value = _
            "='N:\IMMOBILIER RESIDENTIEL\LOGEMENTS COLLECTIFS\[" & Range("B" & i) & _
            ".XLS]IDENTIFICATION IMMEUBLE'!$C$8"
        Next
    End Sub
    voila

Discussions similaires

  1. formule excel avec des "si" des "et" et des "ou"
    Par Boulie72 dans le forum Excel
    Réponses: 3
    Dernier message: 14/03/2012, 10h09
  2. [XL-2007] formule excel avec date
    Par sarrsouraa dans le forum Excel
    Réponses: 2
    Dernier message: 04/01/2011, 14h55
  3. Réponses: 2
    Dernier message: 30/11/2010, 00h17
  4. Problème de modification de formules Excel avec VBA.
    Par jayjay78 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/03/2010, 18h09
  5. Formule Excel avec Jasper et iReport
    Par yodo21 dans le forum Jasper
    Réponses: 0
    Dernier message: 15/10/2009, 16h57

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