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 :

VBA- Synthese de calcul


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 14
    Par défaut VBA- Synthese de calcul
    Bonjour à tous! j'ai besoin d'aide assez rapidement concernant la programmation d'une synthese entre un certain nombre de feuille et selon le type de feuille copier des valeurs dans des colonnes!

    Pour être plus clair j'explik et je joinds le fichier excel
    mon déroulement de programme est:

    (le nombre de feuille étant déja créé)
    -dans la 1ère feuille je veux copier les données cell B1 vers feuille "Results" en D3
    -si la cell C5 de la 1ère feuille = au text "privative" alors la cell O45 de cette feuille sera copié feuille "Results" dans colonne E dans la dernière ligne vide. et les dernières lignes des colonnes F et G seront vidées.

    -si la cell C5 de la 1ère feuille = au text "comptabilisée" alors la cell O45 de cette feuille sera copié feuille "Results" dans colonne F dans la dernière ligne vide. et les dernières lignes des colonnes E et G seront vidées.

    -si la cell C5 de la 1ère feuille = au text "Annexe" alors la cell O45 de cette feuille sera copié feuille "Results" dans colonne G dans la dernière ligne vide. et les dernières lignes des colonnes E et F seront vidées.

    -passer à la ligne suivante dans feuille "results" et feuille suivante dans la liste des feuilles créées.

    si B1 de cette feuille suivante = B1 de la feuille précédente alors on enregistre les données sur la ligne précendente de la feuille "results"

    le fichier peut etre récupéré à cette adresse trop lourd pour etre posté ici:
    http://www.developpez.net/forums/d84...s-discussions/

    j'espère que l'on pourra m'aider merci par avance

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    et ou en est tu de ton code ? par quoi est tu bloqué ? ..

  3. #3
    Membre averti
    Inscrit en
    Août 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 14
    Par défaut
    j'ai seulement reussi a copier B1 en B3 avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Extraire()
     
    Sheets("Results").Range("D3:D200").ClearContents
    Derligne = Sheets("Results").Range("D3").End(xlUp).Row + 1
     
       For i = 6 To Worksheets.Count
     Range("D" & Derligne).Value = Sheets(i).Range("B1").Value
     Derligne = Derligne + 1
       Next i

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par leBlindé Voir le message
    j'ai seulement reussi a copier B1 en B3 avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Extraire()
     
    Sheets("Results").Range("D3:D200").ClearContents
    Derligne = Sheets("Results").Range("D3").End(xlUp).Row + 1
     
       For i = 6 To Worksheets.Count
     Range("D" & Derligne).Value = Sheets(i).Range("B1").Value
     Derligne = Derligne + 1
       Next i
    Pourquoi effectuer une boucle ( For ..i..) si tu ne doit copier la donné d'une seule feuille ?
    et si c'est pour copier en D3 ... pourquoi calculer le numéro de la dernière ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Results").Range("D3:D200").ClearContents
    Sheets("Results").Range("D3") = sheets(1).Range("B1") ' on peu changer sheets(1) par sheets("Mafeuille")

  5. #5
    Membre averti
    Inscrit en
    Août 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 14
    Par défaut
    En fait j'ai une macro qui me permet de rentrer des données de mesurages et à chaque local mesuré je créé une nouvelle feuille.
    Pour chaque immeuble le nombre de local est différent donc le nombre de feuille de données sera différent à chaque fois.

    donc le but est de copier tous les noms des locaux situés en B1 de chaque feuille en D3 puis D4... de la feuille de synthèse.
    donc j'ai utilisé derligne

    c'est après que je bloque la partie difficile C5 je maîtrise pas assez les codes VBA pour touver le bon chemin

    En tout cas merci pour l'aide c'est super !

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour à tous,

    le fichier peut etre récupéré à cette adresse trop lourd pour etre posté ici : http://www.developpez.net/forums/d84...s-discussions/
    Le fichier n'y est plus, normal si tu le mets en tout début de discussion

    si la cell C5 de la 1ère feuille = au text "privative" alors la cell O45 de cette feuille sera copié feuille "Results" dans colonne E dans la dernière ligne vide. et les dernières lignes des colonnes F et G seront vidées.
    Dans a boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    IF Sheets("Nom 1ère feuille").Range("C5") = "privative" then
      With Sheets("Results")
        ' Récupérer la dernière ligne vide de la colonne E
        DLigR = .Range("E" & Rows.Count).End(XlUp).Row + 1
        .Range("E" & DligR) = Sheets("Nom 1ère feuille").Range("O45")
        ' Effacer les 3 dernières lignes de la colonne F et G
        DLigR = .Range("F" & Rows.Count).End(XlUp).Row
        .Range("F" & DLigR -2 & ":F" & DLigR).ClearContents
        DLigR = .Range("G" & Rows.Count).End(XlUp).Row
        .Range("G" & DLigR -2 & ":G" & DLigR).ClearContents
      End With
    End If
    Essaye d'analyser et de comprendre ce code, teste le, et dis nous

    A+

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/10/2013, 17h32
  2. VBA question de calcul
    Par lenoble09 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 06/03/2012, 14h50
  3. [Toutes versions] executer code vba apres le calcul automatique des fomules
    Par LaPanic dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 19/12/2011, 17h42
  4. [VBA-E]Ligne calculée en fin de tableau dynamique
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 07/10/2006, 22h23
  5. Réponses: 10
    Dernier message: 13/06/2006, 17h59

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