Synthèse/transfert données colonnes vers autre classeur

28classeur2.zip (11.11 Ko)

Bonjour à tous.

Mon boss m'a donné une mission dans laquelle j'ai à automatiser la remonter d'information d'un fichier excel vers un autre (sachant que le premier fichier sera mis à jour tous les mois le but est de fournir le deuxième en VBA pour une compléte automatisation).

Je n'ai jamais fait de VBA avant, j'ai lu tous les cours disponibles sur ce site et ai déjà pas mal arpanté le forum pour trouver réponse à ma question.

Mon problème ici, est que je dois mixer plusieurs choses différentes (boucle, calculs etc.).

Je dois partir de zéro et n'ai pas la moindre idée de comment commencer, ce n'ai pas un manque de motivation de ma part mais j'aurai besoin d'un exemple, d'une piste à suivre pour pouvoir mettre tout ça en place.

Ici je n'arrive pas à combiner la fonction "If", le passage d'un classeur vers un autre et enfin la fonction somme sur le deuxième classeur.

Vous trouverez ci joints le premier classeur avec une question plus précise.

Merci d'avance pour vos réponses, cela me sera d'une grande aide pour pouvoir me lancer dans ce projet.

Bonjour et bienvenue sur le forum

Un essai. Te convient-il ?

Les 2 fichiers doivent être ouverts et au format ".xls"

55classeur2.zip (19.48 Ko)
59classeur1.zip (18.30 Ko)

Bonjour,

D'abord merci beaucoup d'avoir pris le temps de m'épauler sur ce problème!

Quelques petites questions cependant, car je ne comprend pas toutes les formules et j'aime bien comprendre quand je travaille sur quelque chose.

Je ne comprend pas ce qu'est la valeur Flag...

J'ai également du mal à assimilé la ligne : For Each C In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)

En effet ce que j'ai donné n'est qu'un exemple (je ne pouvais pas donner le fichier sur lequel je travail réellement) j'ai donc nécessairement besoin de comprendre pour pouvoir exporter ça sur mon fichier.

Autre chose, il y a un léger problème que je n'arrive pas à résoudre concernant le total à avoir, en effet la somme devrait normalement être de 700 dans l'autre tableau (car deux lignes correspondent au "cahier des charges") or ici la somme affichée n'est que de 300...

Désolé de ne pas pouvoir régler ça tout seul mais je suis vraiment novice en la matière!

Merci encore.

Option Explicit

Dim Doc1, Doc2, D, Flag

Sub EtablirLaSomme()

    Flag = 0
    On Error GoTo OuvrirDoc
    Set Doc2 = Workbooks("Export SAS 05-2014.xls").Sheets("Feuil1")
    Flag = 1
    Set Doc1 = Workbooks("Fichier excel restitution NEW DEAL.csv").Sheets("Feuil1")
    Doc1.Cells(5, "F").Value = ""
    Doc2.Activate

    For Each D In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
        If D.Value = "CPART" Then
            Doc1.Cells(5, "F").Value = Doc1.Cells(5, "F").Value + D.Offset(0, 2).Value
        End If
    Next D
    Doc1.Activate
    Exit Sub

OuvrirDoc:
    If Flag = 0 Then
        MsgBox "Le fichier ''Classeur2'' doit être ouvert", 16
    ElseIf Flag = 1 Then
        MsgBox "Le fichier ''Classeur1'' doit être ouvert", 16
    End If

End Sub

Voilà mon adaptation sur le fichier "normal", quand j'essaye d'activer la macro l'ordinateur me demande d'ouvrir le classeur2 et je n'arrive pas à régler ce problème..

Bonjour

Tu écris :

Je ne comprend pas ce qu'est la valeur Flag...

Flag est une variable que j’initie à 0 et qui me permet d’envoyer un message d’alerte différent selon que le classeur 1 ou le classeur 2 n’est pas ouvert.

J'ai également du mal à assimilé la ligne : For Each C In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)

Cela veut dire que l’on va prendre chaque cellule de la sélection qui va de la cellule A2 à la première cellule où on arrive lorqu’on part de la dernière cellule du tableau en colonne A et que l’on fait : Ctrl + flèche vers le haut

il y a un léger problème que je n'arrive pas à résoudre concernant le total à avoir, en effet la somme devrait normalement être de 700

Désolé, dans l’exemple, il n’y a qu’une seule ligne qui remplit les 3 conditions :

• "DAT_PREAVIS_32_JOURS" en colonne A

• "CPART" en colonne B

• "assuré avec relation établie" en colonne C

C’est la ligne 4 pour laquelle on a 300 en colonne D

(je ne pouvais pas donner le fichier sur lequel je travail réellement)

Dommage ! Cela m’empêche de travailler dans les conditions réelles…

Bye !

Au temps pour moi,

C'est bon j'ai réussi en partant de ta formule à l'appliquer à mon cas,

Merci de ton aide,

Romain

Rechercher des sujets similaires à "synthese transfert donnees colonnes classeur"