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

Résolu
SandraVBA Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   7
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   7
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   7
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
0
SandraVBA Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
https://www.cjoint.com/?0HDqLDOUCxv

Est ce que ça fonctionne?
0
PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
Après le dinner. je te reviens.
0
PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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
SandraVba
 
C'est super. J'aurais jamais trouver tout ça, je vais l'enregistrer dans mon fichier et je vous informe de cela
0
SandraVba
 
Merci beaucoup pour votre aide!
0
PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
Merci Borntobealive d'avoir fait le suivi :)
0