Aide pour mise à jour automatique

Résolu/Fermé
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 - 15 juin 2015 à 15:56
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 - 17 juin 2015 à 17:49
Bonjour à tous,

Je sollicite votre aide pour un petit conseil ou du moins pour une petite piste. En effet je ne sais pas trop comment commencer ma vba (si vba nécessaire!)

Pour résumer :
- Une personne de mon entreprise va compléter un rapport global jour après jour en ajoutant des lignes à la feuille

Ces données ont besoin d'être copié automatiquement vers une autre feuille (ce sera selon le nom du pays concerné)

Le pays concerné remplira des informations dans son onglet et il faut que ces nouvelles informations se recopie automatiquement dans le fichier source.

Avez-vous une idée pour faire cela?

Merci d'avance pour votre aide.

A voir également:

15 réponses

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
16 juin 2015 à 20:10
1. Serait-il possible d'actualiser ces infos sur la Feuil1?
oui, un peu comme dans le premier fichier
2. (Peut être dans ce cas obligation de créer un ID unique)
oui, ça va même être indispensable

Bonne soirée
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 15/06/2015 à 16:22
Bonjour
..." Ces données ont besoin d'être copié automatiquement vers une autre feuille"...
..." nouvelles informations se recopie automatiquement dans le fichier source. "...

Fichier source ou feuille source ?

Mettre le classeur (ou un extrait) sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le raccourci proposé dans le message de réponse

Michel
0
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
15 juin 2015 à 16:25
Bonjour Michel, merci pour la réponse.

http://www.cjoint.com/c/EFpowm0AGJv

Donc dans l'onglet Source, dès que la personne rajoute une ligne, je voudrais que l'onglet correspondant aux pays d'origine (Colonne F) se mette à jour avec la nouvelle ligne ajoutée.

Ensuite la personne du pays concerné (par exemple IE), renseigne des informations et ces informations sont automatiquement remise à jour dans le fichier source.

Merci d'avance
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
15 juin 2015 à 16:51
RAPPEL:
FICHIER SOURCE C'EST QUOI ?
0
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
15 juin 2015 à 17:20
Désolé fichier Source c'est Onglet Source
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
15 juin 2015 à 17:20
Bonjour

Un (petit) exemple
http://www.cjoint.com/c/EFppts4zJVg

Salutations à Michel en passant

Cdlmnt
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
15 juin 2015 à 17:37
Pour éviter de copier deux fois la même ligne
http://www.cjoint.com/c/EFppKztlDLg

Cdlmnt
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 15/06/2015 à 19:19
Pour ne recopier que les valeurs (problème de la formule en colonne G)
http://www.cjoint.com/c/EFprtqxyNrg
Cdlmnt
0

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

Posez votre question
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
16 juin 2015 à 11:54
Super merci pour l'aide.

Est-il possible de copier directement toutes les lignes avec un seul bouton sans être obligé de le faire ligne par ligne?

Pour ça je pensais créer un ID unique pour chaque ligne. Est-ce une bonne méthode?
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
16 juin 2015 à 12:04
1. Est-il possible de copier directement toutes les lignes avec un seul bouton sans être obligé de le faire ligne par ligne?
bien sûr
question 1. est ce que les feuilles de détail sont déjà créées, si c'est non, la macro peut s'en charger
2. Pour ça je pensais créer un ID unique pour chaque ligne. Est-ce une bonne méthode?
Très bonne idée même, un simple numéro en colonne 1 peut très bien faire l'affaire

Tu dis
0
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
16 juin 2015 à 12:16
Oui les feuilles sont déjà créées. Merci pour ton support. J'essaie d'avancer avec les infos que tu m'as donné.
0
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
16 juin 2015 à 18:21
http://www.cjoint.com/c/EFqqrGrnsav

Bonjour à tous,

Du coup en regardant un peu sur internet, j'ai modifié une macro utilisant l'objet Dico, c'est la première fois que je l'utilise et ça accélère grandement le code.

Alors j'ai une petite question.

Je voudrais que dans ma colonne F lorsque la macro rencontre les pays (IT, FR, DE, GB et CH) cette dernière la copie dans l'onglet IE.

Je me doute qu'il faut définir avec le dico (key et item) mais j'avoue ne pas comprendre tout à fait. Peut être ce n'est pas la bonne méthode?

Je continue à essayer, merci d'avance pour ceux qui y jetteront un coup d'oeil.
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 16/06/2015 à 19:24
Tu n'as pas vraiment besoin de l'objet dictionary dans la mesure où tu supprimes toutes les feuilles de détail avant de les re-créer
Un exemple dans le Module 2 (ctrl+k pour lancer la macro)
http://www.cjoint.com/c/EFqryBsG7Fg

Cdlmnt
0
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
16 juin 2015 à 19:53
Ah ok effectivement ça parait plus logique comme ça. Ca marche nikel.

Merci vraiment pour ton aide c'est super sympa.

Du coup pour aller plus loin. Imaginons que les pays d'origine (IE, IN, CN et US) aient accès à ce fichier et remplisse dans l'onglet qui leur corresponde les informations de colonne P jusqu'à la colonne AB.

Serait-il possible d'actualiser ces infos sur la Feuil1? (Peut être dans ce cas obligation de créer un ID unique)

Encore merci
0
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
17 juin 2015 à 14:54
http://www.cjoint.com/c/EFrm1oVbiTv

Salut à tous, en module 3 j'ai essayé d'utiliser la fonction Find et d'identifier le numéro de ligne de la Feuil1 pour ensuite copier les informations de l'onglet IE vers la feuil1.

Mais la boucle ne fonctionne plus à partir de i = 2. je ne comprends pas. Avez-vous une idée si jamais qqn à le temps de regarder.

Merci d'avance. Bonne journée à tous
0
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
17 juin 2015 à 15:06
Désolé pour le dérangement, mes ID n'était pas en valeur, voilà pourquoi il ne les trouvait pas.
0
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
17 juin 2015 à 15:37
http://www.cjoint.com/c/EFrnKxNY3Gv

Voilà ce que j'ai fait, je pense que ça marche.

Si un d'entre vous pense pouvoir l'améliorer (certainement); n'hésitez pas à me dire
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
17 juin 2015 à 16:04
1. Voilà ce que j'ai fait, je pense que ça marche.
si tu as testé et que ça donne le résultat attendu, c'est que ça marche
2. En faisant un peu de ménage essaies celle-ci

Sub Actu1()
Dim DLig As Long
Dim i As Long
Dim f As Long
Dim ID As Long
Dim Trouve As Object, PlageDeRecherche As Range
Set PlageDeRecherche = Sheets("Feuil1").Columns(1)
For f = 2 To Worksheets.Count
  With Sheets(f)
    DLig = .Range("A" & Rows.Count).End(xlUp).Row
    DCol = Cells(10, Columns.Count).End(xlToLeft).Column
    For i = 11 To DLig
      ID = Range("A" & i).Value
      Set Trouve = PlageDeRecherche.Find(what:=ID, LookAt:=xlWhole)
      If Not Trouve Is Nothing Then
        therow = Trouve.Row
        .Range(.Cells(i, 17), .Cells(i, DCol)).Copy Destination:=Sheets("Feuil1").Range("Q" & therow)
      End If
    Next i
  End With
Next f
End Sub

Cdlmnt
0
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
17 juin 2015 à 16:22
Merci pour ta réponse, cela ne fonctionne pas, pour l'ID, cela va toujours chercher l'information en feuil1 et pas dans les autres feuilles
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
17 juin 2015 à 16:29
Exact
ID = Range("A" & i).Value
Il manque le . (point) devant Range pour référence à la feuille Sheets(f)
..... que j'ai oublié aussi
0
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
17 juin 2015 à 16:39
Ah ok super tu viens de m'apprendre un truc cool.

C'est un peu pareil que .me ?
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 17/06/2015 à 16:48
Si on veut

With Sheets(f)
toute référence de plage/cellule commençant par .
sera vue dans sheets(f)
d'ailleurs, dans ton code tu en as pas mal
DLig = .Range("A" & Rows.Count).End(xlUp).Row --> dans sheets(f)

DCol = Cells(10, Columns.Count).End(xlToLeft).Column --> dans ?
il manque le point ici aussi (pas dramatique car toutes
les feuilles ont la même ligne 10, mais ce n'est pas beau donc ....

End With
0
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
17 juin 2015 à 17:07
Ok merci pour l'info j'ai modifié tout ça ;)

Dis moi juste une dernière demande avant de te laisser tranquille.

Dans la première macro, comment puis-je faire pour copier les lignes en gardant les bordures?
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 17/06/2015 à 17:24
  If FeuilleExiste(Ori) Then
    liFC = Sheets(Ori).Cells(Rows.Count, 1).End(xlUp).Row + 1
    Sheets(FS).Rows(liFS).Copy
    Sheets(Ori).Cells(liFC, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Sheets(Ori).Cells(liFC, 1).PasteSpecial Paste:=xlPasteFormats
  Else
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = Ori
    Sheets(FS).Rows(lideb).Copy Sheets(Ori).Cells(lideb, 1)
    Sheets(FS).Rows(liFS).Copy
    Sheets(Ori).Cells(lideb + 1, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Sheets(Ori).Cells(lideb + 1, 1).PasteSpecial Paste:=xlPasteFormats
  End If
0
simon7339 Messages postés 68 Date d'inscription lundi 10 mars 2014 Statut Membre Dernière intervention 10 avril 2018 1
17 juin 2015 à 17:38
Au top, encore merci pour tout
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 17/06/2015 à 17:50
DE rien

Si c'est fini, merci de mettre le sujet à Résolu (en haut à droite de ton premier message)

Bonne fin de journée
et bon courage pour la suite ....
0