Copie de ligne de différents onglet sur une feuille "synthése"

Résolu/Fermé
SandraVBA Messages postés 10 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 8 septembre 2014 - 29 août 2014 à 11:20
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 - 11 sept. 2014 à 17:44
Bonjour,

Je souhaite créer une macro avec différents éléments. Je vous explique:
J'ai une feuille nommé "Actions" qui centralise des premiéres infos . Au fur et à mesure de l'avancement de mon projet, cette feuille est copier avec des données différentes (cette macro est déjà créee), les copies de "Actions" se nomme tel quel "Actions+1";Actions+2....
J'ai créer une feuille synthése qui doit reprendre dans mes feuilles Actions +X, les données d'un sous tableau qui se nomme risque. La macro doit copier toutes les lignes qui detail mon risque (les détails du tableau 3 colonnes, et quelques lignes compléter au fur et à mesure)
Je sais pas si j'ai été bien explicite mais si vous pouviez m'aider ça serait super !!!


A voir également:

15 réponses

borntobealive Messages postés 138 Date d'inscription jeudi 17 juillet 2014 Statut Membre Dernière intervention 25 février 2019 7
29 août 2014 à 13:59
est-ce que tu veux garder un lien entre tes cellules ou simplement copier les valeurs ?
0
SandraVBA Messages postés 10 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 8 septembre 2014
29 août 2014 à 14:06
Je voudrais garder un lien au cas où il y ai des mise à jour d'information de mes lignes
0
borntobealive Messages postés 138 Date d'inscription jeudi 17 juillet 2014 Statut Membre Dernière intervention 25 février 2019 7
29 août 2014 à 14:14
alors tu défini proprement toutes tes feuille genre :

dim Wks_blalbla as worksheet 
dim Wks_blibli as worksheet

set Wks_blabla = application.workbooks(blabla).worksheets(1)
set Wks_blibli = application.workbooks(blibli).worksheets(1)


et tu met dans le fichier de destination les adresses des cellules que tu veux :

Wks_blibli.Cells(1,1).value = "=" & Wks_blabla.cells(2,8).address(true,true,xla1,true)


tu peux utiliser range à la place de cells, donner des nom à tes range après c'est comme tu veux

Ca répond à ta question ?
0
SandraVBA Messages postés 10 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 8 septembre 2014
29 août 2014 à 14:23
C'est pas exactement ça.
de plus j'ai une erreur d'éxécution dans la macro
Il y a pas un moyen de vous transferer mon fichier pour vous montrez ce dont j'ai besoin?
0
borntobealive Messages postés 138 Date d'inscription jeudi 17 juillet 2014 Statut Membre Dernière intervention 25 février 2019 7
29 août 2014 à 14:33
mets le en ci joint sur cette page

(si tu as pris tel quel ce que je t'ai mis et que la numerotation de tes colonnes est en chiffre alors il faut remplace xlA1 par xl R1C1)
0
SandraVBA Messages postés 10 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 8 septembre 2014
29 août 2014 à 14:49
je peux pas l'insérer dommage ;(
J'ai modifié mais ça ne fonctionne pas.
Je réexplique:
Je veux qu'il copis (avec lien) la ligne B27 de la feuille actions, mais ma ligne B27 n'est pas figé dans le cas où d'autre ligne peuvent être insérer au dessus.
Aprés la macro doit transferer les infos de la ligne dans mon onglet risk (c'est infos c'est du texte)
Cepedant j'ai plusieurs feuille actions (action+1; action+2....)

Je sais pas si j'exprimes bien mon besoin....
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
29 août 2014 à 15:25
0
SandraVBA Messages postés 10 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 8 septembre 2014
29 août 2014 à 16:10
Merci,
Je crois que mon fichier est joint,
j'ai explicité mon besoin à travers ;!)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
29 août 2014 à 16:33
Une fois ton fichier joint sur Cjoint.
Il est sur Cjoint.

Tu dois mettre le liens ici dans le forum pour qu'on puisse y avoir accès
0
SandraVBA Messages postés 10 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 8 septembre 2014
29 août 2014 à 16:37
https://www.cjoint.com/?0HDqLDOUCxv

Est ce que ça fonctionne?
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
29 août 2014 à 16:53
Ca fonctionne, je vois ton fichier, je vois les feuilles action, la feuille Risk

C'est quoi le tableau 3,
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
29 août 2014 à 16:53
oh, je viens de voir tes notes dans Action (2), je regardes et je te reviens
0
SandraVBA Messages postés 10 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 8 septembre 2014
29 août 2014 à 16:58
le tableau 3 c'est juste une description de l'action projet. J'ai pas besoin d'insérer des formules ou autre.

Super merci ;)
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
Modifié par PlacageGranby le 29/08/2014 à 18:09
Après le dinner. je te reviens.
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
Modifié par pijaku le 29/08/2014 à 21:44
Je résume, en gros beaucoup de compteur et de loop.
Premierement, trouver on est rendu à quelle ligne dans les feuilles dependancies, output et autre. on loop et on assigne un compteur.

Ensuite, on loop sur les feuille et on trouve celle qui commence par "Action"
Pour les feuilles action, on loop pour trouver l'entête des tableau. on prend un compteur.
Une fois un tableau trouvé, on copie tant que la colonne B n,est pas vide, après on cherche le tableau suivant.

J'ai fait le code pour Dependancies et output. il reste a ajouter les autres tableau. Tu peux t'inspirer du code que j'ai fait. modifier au besoin. et aussi, il te faudra creer un bouton et assigner la macro.

Sub voila()
Dim LoopSheet As Integer
Dim LoopAction As Integer
Dim LoopDependancies As Integer
Dim LoopOutputs As Integer
Dim Arret As Boolean
Dim test As String

LoopDependancies = 3
LoopOutputs = 3

While Sheets("Dependencies").Range("A" & LoopDependancies).Value <> ""
    LoopDependancies = LoopDependancies + 1
Wend

While Sheets("Outputs").Range("A" & LoopOutputs).Value <> ""
    LoopOutputs = LoopOutputs + 1
Wend

For LoopSheet = 1 To Worksheets.Count
    If Left(Worksheets(LoopSheet).Name, 6) = "Action" Then
        Arret = False
        LoopAction = 1
        While Arret <> True
            If Sheets(LoopSheet).Range("B" & LoopAction).Value = "17. DEPENDENCIES AND INPUTS" Then
                LoopAction = LoopAction + 2
                While Sheets(LoopSheet).Range("B" & LoopAction).Value <> ""
                    Sheets("Dependencies").Range("A" & LoopDependancies).Value = Sheets(LoopSheet).Range("B" & LoopAction).Value
                    Sheets("Dependencies").Range("B" & LoopDependancies).Value = Sheets(LoopSheet).Range("C" & LoopAction).Value
                    Sheets("Dependencies").Range("C" & LoopDependancies).Value = Sheets(LoopSheet).Range("E" & LoopAction).Value
                    Sheets("Dependencies").Range("D" & LoopDependancies).Value = Sheets(LoopSheet).Range("F" & LoopAction).Value
                    LoopDependancies = LoopDependancies + 1
                    LoopAction = LoopAction + 1
                Wend
            End If
            If Sheets(LoopSheet).Range("B" & LoopAction).Value = "18. OUTPUTS AND DELIVERABLES" Then
                LoopAction = LoopAction + 2
                While Sheets(LoopSheet).Range("B" & LoopAction).Value <> ""
                    Sheets("Outputs").Range("A" & LoopOutputs).Value = Sheets(LoopSheet).Range("B" & LoopAction).Value
                    Sheets("Outputs").Range("B" & LoopOutputs).Value = Sheets(LoopSheet).Range("C" & LoopAction).Value
                    Sheets("Outputs").Range("C" & LoopOutputs).Value = Sheets(LoopSheet).Range("E" & LoopAction).Value
                    Sheets("Outputs").Range("D" & LoopOutputs).Value = Sheets(LoopSheet).Range("F" & LoopAction).Value
                    LoopOutputs = LoopOutputs + 1
                    LoopAction = LoopAction + 1
                Wend
                Arret = True
            End If
            LoopAction = LoopAction + 1
        Wend
    End If
Next


End Sub
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
29 août 2014 à 19:11
C'est gros, mais c'est pratique quand on sait pas combien de ligne il faut copier, ou il seront exactement, et que l'endroit ou on veut les copier est variable.

On compte, assigne un compteur, et loop pour trouver avec des for et des while.
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
29 août 2014 à 19:14
oh, j'ai mis une variable arret.
En gros, dans le dernier tableau que tu veux copier. tu met la arret = true pour qu'il arrête de cherche la feuille action.
Je l'ai mis a la fin de outputs car c'est le dernier tableau que j'ai fait dans mon code, mais toi il faudrait placer arret = true a payement claim (innexistante je crois, ca s'arrete a assumption, payment n'est pas la)
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
29 août 2014 à 20:06
Tu voulais aussi coller la référence au lieu de la valeur.
Ma macro colle la valeur.
Sauf que le but d'avoir la réfèrence était si y avait des changement.
En gros, tu met un bouton pour effacer le contenu des tableau dependancies, outputs et compagnie, et tu relance la macro, et tu as toutes les informations mis à jour.
0
C'est super. J'aurais jamais trouver tout ça, je vais l'enregistrer dans mon fichier et je vous informe de cela
0
Merci beaucoup pour votre aide!
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
29 août 2014 à 21:00
Aucun problème,,, c'est assez infernal comme code.

Mais suffit de l'avoir fait une fois pour avoir une base, et ensuite réutiliser cela plus tard dans d,autre programme.
0
SandraVBA Messages postés 10 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 8 septembre 2014
1 sept. 2014 à 11:01
Quand j'éxécute la macro, les élements de la partie risque ce transfert dans l'onglet dependencies et pas dans l'onglet risk; Comment je peux remedier à cela svp
0
SandraVBA Messages postés 10 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 8 septembre 2014
1 sept. 2014 à 13:27
DAns votre macro, je ne comprends pas le "3" de la boucle, à quoi cela correspond? svp
LoopDependancies = 3
LoopOutputs = 3
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
3 sept. 2014 à 16:21
Merci Borntobealive d'avoir fait le suivi :)
0