Aide pour mise à jour automatique

Résolu
simon7339 Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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   Statut Membre Dernière intervention   1
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
RAPPEL:
FICHIER SOURCE C'EST QUOI ?
0
simon7339 Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   1
 
Désolé fichier Source c'est Onglet Source
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

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

Salutations à Michel en passant

Cdlmnt
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Pour éviter de copier deux fois la même ligne
http://www.cjoint.com/c/EFppKztlDLg

Cdlmnt
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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   Statut Membre Dernière intervention   1
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   1
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   1
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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   Statut Membre Dernière intervention   1
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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   Statut Membre Dernière intervention   1
 
Ah ok super tu viens de m'apprendre un truc cool.

C'est un peu pareil que .me ?
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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   Statut Membre Dernière intervention   1
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
  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   Statut Membre Dernière intervention   1
 
Au top, encore merci pour tout
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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