Recopie automatique de données, URGENT !!

aperez

XLDnaute Nouveau
Salut à tous, j'ai besoin d'un coup de main, alors voilà la situation :

J'ai 10 feuilles qui ont chacune un nom de region du monde (FR, UK, USA, CHINA... etc). Dans chacune de ses feuilles j'ai le meme tableau où sont listés les projets en cours (projet 1, projet 2 etc ...).
A chaque projet correspond un état d'avancement noté: "Next Gate 1" , "Next Gate 2", "Next Gate 3" ou "OK".

J'aimerais, dans une nouvelle feuille appelée NEXT GATE 1, que puisse se lister automatiquement tous les projets de tous les pays qui sont à l'état "Next Gate 1".
De meme dans une autre feuille appelée NEXT GATE 2, que se listent tous les projet à l'état "Next Gate 2".
De meme pour "next gate 3" et "ok".


Si quelqu'un trouve ou à une idée, ca m'aiderais énormément. J'ai essayé plusieurs solutions, dont la denière était l'utilisation de fonction matricielle, et de recherche, mais rien ne marche correctement.

Merci d'avance !!!
 

Tibo

XLDnaute Barbatruc
Re : Recopie automatique de données, URGENT !!

Bonjour aperez et bienvenue,

Il serait bon que tu joignes un petit fichier exemple sans données confidentielles pour qu'on puisse voir comment sont structurées tes données.

Fichier à joindre : XLS ou ZIP, taille < 48.8 ko.

@+

P.S. : évite dans ton sujet "URGENT". Ici, seuls des bénévoles te répondent et certains mots ne sont pas appréciés.
 

Excel-lent

XLDnaute Barbatruc
Re : Recopie automatique de données, URGENT !!

Slt Aperez,

Je rejoins Tibo, avec un fichier c'est plus simple. On peut te répondre plus précisement.

De façon général, pour éviter d'avoir 40.000 onglets, tu peux faire une macro qui :
-> rajoute un onglet "Next Gate"
-> récupére toutes les données de tes x feuilles sur l'onglet "Next Gate"
-> filtre tes données pour ne laisser à l'écran que les "next gate 1"
-> imprimer le résultat
-> filtre tes données pour ne laisser à l'écran que les "next gate 2"
-> imprimer le résultat
-> ...
-> effacer l'onglet "Next Gate"

Une fois la macro fini, tu n'as plus qu'à faire un joli bouton pour que la macro se lance toute seule.

Sinon, si tu souhaites conserver les résultats, tu peux remplacer :
-> imprimer le résultat
par
-> effacer tous les onglets sauf "Next Gate"
-> enregistrer le fichier sous "Next Gate xx Extraction du 'mettre la date du jours'"

Sans fichier, nous ne pouvons pas faire plus.
 

aperez

XLDnaute Nouveau
Re : Recopie automatique de données

Tout d'abord, je m'excuse pour le "urgent" qui a été mal percu, ce n'était pas mon intention.
Je vous met en piece jointe le fichier exemple (les dates sont sans signification).

L'onglet "next gate 1" est donc celui où j'aimerais que s'inscrivent automatiquement les projets qui sont à l'état d'avancement NG1 (Next Gate 1).
L'onglet FR est celui sur lequel apparaissent les données sources, qui seront retranscrites (si j'y arrive !! ) dans l'onglet Next gate 1.

Le principe serait donc d'entrer des projets relatifs à chaque pays, et qu'automatiquement ils soient retranscrit dans l'onglet Next Gate 1, s'ils sont à l'état NG1 bien sur.

Merci d'avance et encore désolé pour mon manque de tact ;)
 

Pièces jointes

  • EXEMPLE.xls
    28 KB · Affichages: 91
  • EXEMPLE.xls
    28 KB · Affichages: 99
  • EXEMPLE.xls
    28 KB · Affichages: 89

Excel-lent

XLDnaute Barbatruc
Re : Recopie automatique de données

Slt Aperez

Tu n'as pas dit quelle méthode tu préféré, donc j'ai pris la première.

Comme indiqué ci-dessus, j'ai suivi scrupuleusement les étapes décrites ci-dessus.

Puis j'ai nettoyer la macro de tous les codes inutiles.

Puis j'ai créé un bouton "macro next gate 1".

Ainsi, chaque fois que tu cliqueras dessus, la macro réactualisera les données de l'onglet récap.

Ensuite dans un second temps, tu peux améliorer ta macro pour qu'elle s'adapte automatiquement à la taille de tes tableaux, aux nombres d'onglets, test si le filtre est actif pour faire le nécessaire en cas de besoin, ...

A+
 

Pièces jointes

  • NextGate1.xls
    44.5 KB · Affichages: 119

aperez

XLDnaute Nouveau
Re : Recopie automatique de données, URGENT !!

Excel lent ;) tout ca. Je te remercie pour cette aide qui doit être parfaite, mais il subsiste un petit probleme malheureusement : la macro ne s'execute pas...
Un message d'erreur apparait en disant que les macros ne peuvent sexecuter à cause d'un niveau de securité trop élevé ou à cause d'une absence de signature numérique. J'ai modifié la sécurité mais ca ne change rien..
Si tu as une idée de la raison de ce blocage, tu es la bienvenue :)
En tout cas merci beaucoup pour cette aide rapide et je suis sur qu'une fois celà reglé, la macro sera parfaite.

A +
 

jeanpierre

Nous a quitté
Repose en paix
Re : Recopie automatique de données, URGENT !!

Bonsoir le fil, aperez, Tibo, Excel-lent, re le forum,

Pas vraiment d'idée, ni de solution, mais après avoir modifié le niveau de sécurité, as-tu enregistré, fermé et réouvert.....

Sinon, on reste au point de départ..... c'est sûr...

Pour faire simple...

Tu ouvres le fichier, il te dit que les macros ne peuvent etc etc....
Tu modifies le niveau... Tu enregistres.... Tu fermes tout et tu réouvres, et là ce doit être bon...

A bientôt pour une solution.

Jean-Pierre
 

aperez

XLDnaute Nouveau
Re : Recopie automatique de données !!

Bonjour a toi forum, tibo excel lent et jean pierre,
Je n'ai pas eu besoin de modifier le niveau de sécurité, c'était juste un petit bug de mon ordinateur :D
Une nuit apres, tout marchait parfaitement ! Merci a tous pour cette aide rapide et efficace et bien sur un merci spécial a Excel-lent qui a fait un boulot pour le coup ... Excellent !

A bientot !
 

aperez

XLDnaute Nouveau
Re : Recopie automatique de données !!

Bonjour a tous,
Toujours pour le meme sujet de recopie automatique, la macro de Excel-lent marche parfaitement lorsque j'avais un fichier excel avec des feuille nommée "FR" et "UK", mais là j'ai du en rajouter 8 autres ... Les noms apparaissent dans le code ci-apres.
Cependant, j'ai pris le meme modele de macro que l'excellent modele d'Excel-lent ;) en rajoutant les autres pays, mais celà ne fonctionne pas.
Si un de vous vois pkoi le code ne marche pas, je suis tt ouïe !!

merci d'avance et a bientot



CODE :


Sub NextGate1()
'
' Macro enregistrée le 03/08/2007
'
Sheets("FR").Select
Range("B4:R14").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("UK").Select
Range("B4:R14").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("USA").Select
Range("B4:R14").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("AUS").Select
Range("B4:R14").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("GER").Select
Range("B4:R14").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("PMO").Select
Range("B4:R14").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("IND").Select
Range("B4:R14").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ROW").Select
Range("B4:R14").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("EUR").Select
Range("B4:R14").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ASIA").Select
Range("B4:R14").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1:A2").Select
Sheets("FR").Select
Sheets("UK").Select
Sheets("USA").Select
Sheets("GER").Select
Sheets("PMO").Select
Sheets("IND").Select
Sheets("ROW").Select
Sheets("EUR").Select
Sheets("ASIA").Select
Selection.AutoFilter Field:=18, Criteria1:="NG1"
Range("A1:A2").Select
Sheets("FR").Select
Sheets("UK").Select
Sheets("USA").Select
Sheets("USA").Select
Sheets("GER").Select
Sheets("PMO").Select
Sheets("IND").Select
Sheets("ROW").Select
Sheets("EUR").Select
Sheets("ASIA").Select

End Sub
 
C

Compte Supprimé 979

Guest
Re : Recopie automatique de données, URGENT !!

Salut Aperez,

Dans ton code, tu colles les valeurs toujours à partir de la même cellule "B15"

Donc les données suivantes écrasent toujours les précédentes !?

A+
 

aperez

XLDnaute Nouveau
Re : Recopie automatique de données, URGENT !!

Tout à fait, là est le probleme, c'est tjrs la meme cellule B15. J'ai essayé d'autres cellules mais je ne trouve pas ! J'y ai passé tellement de tps que mes yeux ne voient plus que des "B15" et "B4" !!!!! lol
 
C

Compte Supprimé 979

Guest
Re : Recopie automatique de données, URGENT !!

re,

Je ne sais pas ce que tu veux faire exactement, mais essaye donc ça :D
Code:
Sub NextGate1()
  Dim VSht(9), I As Integer
  VSht(1) = "FR": VSht(2) = "UK": VSht(3) = "USA"
  VSht(4) = "GER": VSht(5) = "PMO": VSht(6) = "IND"
  VSht(7) = "ROW": VSht(8) = "EUR": VSht(9) = "ASIA"
  ' Pour chaque feuille du tableau VSht
  For I = 1 To 9
    Sheets(VSht(I)).Select
    Range("B4:R14").Copy
    ' Colle les valeurs
    Sheets("Next Gate 1").Range("B" & 14 + (11 * (I - 1)) + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
      SkipBlanks:=False, Transpose:=False
  Next I
  Range("A1:A2").Select
  For I = 1 To 9
    Sheets(VSht()).Select
    Selection.AutoFilter Field:=18, Criteria1:="NG1"
  Next I
End Sub

A+
 

aperez

XLDnaute Nouveau
Re : Recopie automatique de données, URGENT !!

Merci bcp BrunoM45, ct tt simplement que j'écrasai a chaque fois les données précédentes comme tu me l'a si bien fai remarqué.
Maintenant que ce probleme est résolu, j'aimerai faire qqch de tres tres tres simple mais dont je ne me souvien plus tellement jme suis cassé la tete avec des tableaux matriciels !!
Voici le "probleme":
J'aimerai une macro qui puisse m'associer le fond de couleur rouge pour une cellule où est ecrit "NG1" et un fond de couleur vert pour une cellule ayant écrit "NG2".

Merci d'avance !
 

jeanpierre

Nous a quitté
Repose en paix
Re : Recopie automatique de données, URGENT !!

Re à tous et bonjour le fil,

Avec une petite MFC.

Tu selctionnes toute ta plage....

Dans Format/Mise en forme conditionnelle, choisir la formule est :

avec et première condition :

=A1="ng1" couleur rouge, et la seconde (ajouter) :

=A1="ng2" couleur verte...

Prendre garde, néanmoins, à supprimer tous les $ (à la souris), sinon, cela ne fonctionnerait pas.

Au besoin, tu reviens.

Bon orage à tous, je vais tous déconnecter là (moins de 20° today et le ciel est tout de même en feu)

Jean-Pierre
 

aperez

XLDnaute Nouveau
Re : Recopie automatique de données !!

Bonjour a toi O forum,

Merci beaucoup pour ton aide jeanpierre. Le seul probleme avec une MFC c que c limité a 3 conditions, j'ai donc crée une macro pour régler ce petit inconvénient.
Néanmoins un problème subsiste... A partir de l'aide du forum, j'ai dvlpé une macro, que je vous ai mi ci-dessous. Cette macro regroupe des données de plusieurs feuilles, pour les mettre dans une seule feuille en fonction d'un critère nommé "NG1". Mais je doi rajouté un autre critère (ommé "NG.1") dans cette macro, chose que je n'arrive pa a faire.... La ligne indiquée en rouge est celle a modifier.

N'arrivan pa à rajouter le critère "NG.1" j'ai pensé que la solution pouvai etre de créer une deuxieme macro similaire a celle-ci, pui une 3ème qui serai une fusion des deux premieres.

Si qqun a une petite idée sur les sujets abordés, tte proposition est la bienvenue !
J'espere avoir été clair dans mes explications, si ce n'est pas le cas je reformulerai :)



CODE :

Sub NextGate1()
'
' Macro enregistrée le 03/08/2007 par Arnaud Perez

Application.ScreenUpdating = False

Sheets("ASIA").Select
Range("B4:R115").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B1012").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("AUS").Select
Range("B4:R115").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B340").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("EUR").Select
Range("B4:R115").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B900").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("FR").Select
Range("B4:R115").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("GER").Select
Range("B4:R115").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B452").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("IND").Select
Range("B4:R115").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B676").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("PMO").Select
Range("B4:R115").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B564").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ROW").Select
Range("B4:R115").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B788").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("UK").Select
Range("B4:R115").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B116").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("USA").Select
Range("B4:R115").Select
Selection.Copy
Sheets("Next Gate 1").Select
Range("B228").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("A1:A2").Select
Selection.AutoFilter Field:=18, Criteria1:="NG1"

Range("A1:A2").Select
Sheets("FR").Select
Sheets("UK").Select
Sheets("USA").Select
Sheets("USA").Select
Sheets("GER").Select
Sheets("PMO").Select
Sheets("IND").Select
Sheets("ROW").Select
Sheets("EUR").Select
Sheets("ASIA").Select
Range("A1:A2").Select

' codes ci-dessous optionnels. Possible de les effacer (hormis la ligne "End Sub")
Range("A1").Select
Sheets("UK").Select
Range("A1").Select
Sheets("Next Gate 1").Select
Range("A1").Select
Range("A1").Select
Sheets("USA").Select
Range("A1").Select
Sheets("Next Gate 1").Select
Range("A1").Select
Range("A1").Select
Sheets("AUS").Select
Range("A1").Select
Sheets("Next Gate 1").Select
Range("A1").Select
Range("A1").Select
Sheets("GER").Select
Range("A1").Select
Sheets("Next Gate 1").Select
Range("A1").Select
Range("A1").Select
Sheets("PMO").Select
Range("A1").Select
Sheets("Next Gate 1").Select
Range("A1").Select
Range("A1").Select
Sheets("IND").Select
Range("A1").Select
Sheets("Next Gate 1").Select
Range("A1").Select
Range("A1").Select
Sheets("ROW").Select
Range("A1").Select
Sheets("Next Gate 1").Select
Range("A1").Select
Range("A1").Select
Sheets("EUR").Select
Range("A1").Select
Sheets("Next Gate 1").Select
Range("A1").Select
Range("A1").Select
Sheets("ASIA").Select
Range("A1").Select
Sheets("Next Gate 1").Select
Range("A1").Select

Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 822
Membres
104 677
dernier inscrit
soufiane12