Liaisons de plages cellules sur plusieurs onglets

meran

XLDnaute Nouveau
Bonjour aux pros d'excel :)

Voilà si je viens par ici, c'est que malgré mes recherches, je n'arrive pas à trouver la solution.
Sachant :
- que je n'ai jamais fait de tableaux croisés dynamiques
- que j'utilise les macros en copier/coller de codes, sinon je n'y comprend rien
- que je sais quand même utiliser un certain nombre de formules conditionnelles.

Et que je ne suis pas du tout réfractaire à l'apprentissage, bien au contraire !

Voilà, je souhaite créer un tableau avec :

- Onglets 1 et 2 :saisie du travail des techniciens (nom client, date, etc), j'ai l'intention de créer un menu déroulant pour le nom des clients et le code.
- Onglet 3 : récapitulatif automatique des deux premiers onglets par client

Ce tableau sert de base pour la facturation à l'heure et par type de travail.

- les techniciens saisiront leurs onglets et moi la partie facturation dans le N°3.

Je souhaite également que la colonne facturé (date), que je saisirai dans l'onglet 3, soit mise à jour également dans les onglets des techniciens, pour leur information (nous travaillons en réseau).

Si tout ceci fonctionne, j'ai l'intention d'en apprendre un peu plus sur les tableaux dynamiques pour effectuer une fiche par client pour sortie en impression.

Pensez-vous que tout ceci est réalisable ?

Merci

Regarde la pièce jointe Classeur1.xlsx
 

Pièces jointes

  • Classeur1.xlsx
    34.4 KB · Affichages: 68
  • Classeur1.xlsx
    34.4 KB · Affichages: 63

Gen Rose

XLDnaute Impliqué
Supporter XLD
Re : Liaisons de plages cellules sur plusieurs onglets

Bonjour Meran,
Le forum

J'ai commencé par tes listes tu as donc un onglet menu, dans lequel tu peux ajouter ou modifier les listes (le tout s'ajuste seul lorsque l'on écrit directement en dessous). Je me suis basée sur tes 2 feuilles techniciens et j'ai enlevé les doublons donc tes listes comportent tous les choix possibles selon ton document.

Tu verra un exemple dans l'onglet Technicien 3.

Pour le repport de données, je crois qu'il faudrait tomber en VBA avec un bouton pour importer les données...sous toutes réserve. Il y a des génies des formules qui sauraient sûrement.

Du moins, en p.j. un début de solution :)
 

Pièces jointes

  • MenuValidation.xls
    47 KB · Affichages: 61

meran

XLDnaute Nouveau
Re : Liaisons de plages cellules sur plusieurs onglets

Bonjour,

Merci beaucoup geneviève d'avoir pris le temps de travailler sur mon tableau.
J'ai réussi mes listes déroulantes, et j'ai même réussi à créer une saisie automatique grâce à une discussion que j'ai trouvé sur le forum. 250 noms dans la liste ! Déjà ça de gagné.

Quelqu'un peut-il m'aider sur les reports, j'ai essayé tout un tas de formules, sans succès

Le principe :
Le technicien 1 va le 2 avril chez Mickey et fait un travail codé CPE libéllé visite limites pour 10h de travail
Le technicien 2 va le 6 avril chez Mickey et effectue un travail codé TRAV libéllé suivi pour 8h de travail
Retrouver ces travaux regroupés par client dans l'onglet 3
J'espère ensuite pouvoir créer une fiche (onglet ?) par client, pour impression....mais là c'est pour plus tard

Sioupléééé
 

Gen Rose

XLDnaute Impliqué
Supporter XLD
Re : Liaisons de plages cellules sur plusieurs onglets

Bonjour meran,

J'avoue que je suis un peu mystifiée...

Premièrement, dans ta feuille 'listes' tu en a mis 2 et ensuite, dans les feuilles 'Technicien', tu en utilises qu'une seule...erreur, oubli? De plus, simple suggestion, tu pourrais lister tes libellés et ainsi contrôler mieux les entrées des employés donc plus efficace et facile à s'y retrouver...d'un autre côté, si tu veux des détails de la part de tes employés je comprends.

Deuxièment, tu demandes dans tes feuilles 'Technicien' en F d'aller chercher la donnée en F de l'onglet 'Par client' mais tu demandes aussi dans l'onglet 'Par client' d'aller chercher tous les autres renseignements dans les feuilles 'Technicien'... ce qui me semble n'avoir aucun sens!

Tu ne voudrais pas plutôt que les feuilles 'Technicien' remplissent au fur et à mesure la feuille 'Par client'?

Merci de me revenir,
 

Gen Rose

XLDnaute Impliqué
Supporter XLD
Re : Liaisons de plages cellules sur plusieurs onglets

Bonjour meran
Le forum

Une solution adapté VBA pour ton travail selon ce que je crois comprendre et j'ai rétabli ta liste de code car j'ai une tête dure :eek:

À +
Geneviève
 

Pièces jointes

  • Essai2.xls
    80 KB · Affichages: 37
  • Essai2.xls
    80 KB · Affichages: 42
  • Essai2.xls
    80 KB · Affichages: 41

meran

XLDnaute Nouveau
Re : Liaisons de plages cellules sur plusieurs onglets

coucou geneviève

Désolée, je m'explique un peu mieux.

Effectivement, j'ai oublié de créer le menu déroulant de "Code" dans les onglets techniciens, pour le modèle que j'ai inséré ici ! aie pas taper !
Les libellés sont beaucoup plus complexes que sur mon modèle, c'est malheureusement impossible de les lister également.


"Tu ne voudrais pas plutôt que les feuilles 'Technicien' remplissent au fur et à mesure la feuille 'Par client'?"

Oui, oui !
En fait je souhaite que A B C D E des onglets techniciens soient récapitulés sur mon onglet "par client"

Mais que F de l'onglet "par client" (là c'est moi qui saisit) soit inscrit automatiquement sur celui des techniciens

Je te l'accorde c'est un peu tordu.

Et pis...les techniciens sont hiérarchiquement plus haut que moi...d'où l'intérêt pour eux de savoir si j'ai fait la facturation.

Merci à toi de te pencher sur mon problème
en parallèle j'étudie les VBA déposées sur les différents forums, mais c'est un travail de fourmi que d'essayer de l'adapter à ma situation.
 

Gen Rose

XLDnaute Impliqué
Supporter XLD
Re : Liaisons de plages cellules sur plusieurs onglets

Bonjour meran :)

Suite à ton autre demande, j'ai corrigé la macro pour qu'elle tienne compte des lignes de a:e pour les feuilles techniciens.

J'ai aussi mis un total de 50 lignes à reporter par fiche de technicien; crois-tu que ce sera suffisant pour leurs fiches respectives?

Là, je travaille sur une formule index equiv pour le report de la donnée de facture vers tes feuilles technicien.

Prendre le fichier-joint et remplacer le précédent :eek:

edit;si tu dois ajouter une autre feuille, simplement ajouter une nouvelle variable tel f et reproduire la ligne de code en ajustant avec cette variable, très simple:

Code:
Sub Importer_tech()

    Dim t, y As Variant
    
    t = Sheets("Technicien 1").Range("a2:e50")
    y = Sheets("Technicien 2").Range("a2:e50")
        Sheets("Par client").Cells(Rows.Count, 1).End(xlUp)(2).Resize(UBound(t, 1), UBound(t, 2)) = t
        Sheets("Par client").Cells(Rows.Count, 1).End(xlUp)(2).Resize(UBound(y, 1), UBound(y, 2)) = y
    
End Sub

On ajoute ainsi:

Code:
Sub Importer_tech()

    Dim t, y, f As Variant
    
    t = Sheets("Technicien 1").Range("a2:e50")
    y = Sheets("Technicien 2").Range("a2:e50")
    f = Sheets("Technicien 3").Range("a2:e50")

        Sheets("Par client").Cells(Rows.Count, 1).End(xlUp)(2).Resize(UBound(t, 1), UBound(t, 2)) = t
        Sheets("Par client").Cells(Rows.Count, 1).End(xlUp)(2).Resize(UBound(y, 1), UBound(y, 2)) = y
        Sheets("Par client").Cells(Rows.Count, 1).End(xlUp)(2).Resize(UBound(f, 1), UBound(f, 2)) = f
    
End Sub

Ok, mon code n'est pas très élégant et ce serait bien qu'un génie VBA pass par ici pour l'optimiser..qui sait ;)
Disons que j'ai juste un peu peur que tu ajoute 20 feuilles et que la macro devienne hyper lente...

Enfin, je retourne plancher sur la fonction index equiv et si Monique passe par ici, tu verras, ça va lui prendre 3 secondes..ou moins :eek:

À +
 

Pièces jointes

  • Essai_meran.xls
    82 KB · Affichages: 41

tototiti2008

XLDnaute Barbatruc
Re : Liaisons de plages cellules sur plusieurs onglets

Bonjour meran, Bonjour Geneviève, :)

En partant du principe que chaque feuille dont le nom commence par "Technicien " contient des données à importer, ça pourrait donner ça

Code:
Sub Importer_tech()
    Dim Tech, Ligne As Long, Ws As Worksheet
    For Each Ws In ThisWorkbook.Worksheets
        If Ws.Name Like "Technicien *" Then
            Ligne = Ws.Range("A" & Ws.Rows.Count).End(xlUp).Row + 1
            Tech = Ws.Range("A2:E" & Ligne)
            Sheets("Par client").Cells(Ws.Rows.Count, 1).End(xlUp)(2).Resize(UBound(Tech, 1), UBound(Tech, 2)).Value = Tech
        End If
    Next
End Sub

Maintenant, ça réimporte tout à chaque clic sur le bouton, je ne sais pas si c'est correct comme ça
 

meran

XLDnaute Nouveau
Re : Liaisons de plages cellules sur plusieurs onglets

Bonjour Geneviève,

Merci encore et encore.
Pour l'élégance t'inquiète, du moment que cela nous facilite la vie, c'est le principal.
En fait, nous sommes une toute petite structure, et à mon avis s'il y a 3 techniciens un jour, ce sera le max.

Pour tout te dire, mon fichier d'origine est déjà lent à l'ouverture vu que (pour répondre à ta question), je prévoie 1200 lignes par technicien (pour 2012, ils en ont utilisé 1100 chacun), avec un menu déroulant de 250 noms sur chaque ligne...ouff ! Je songe à créer un nouveau tableau tous les 3 mois (période de facturation chez nous), pour alléger tout cela.

INDEX et EQUIV, j'ai essayé, mais j'ai pas réussi à comprendre comment je devais m'y prendre. Mais bon, ça prouve que j'étais sur la bonne voie :eek:

A+
 

meran

XLDnaute Nouveau
Re : Liaisons de plages cellules sur plusieurs onglets

Bonjour tototiti,

Merci à toi de te pencher sur mon cas.
Je dois être un peu nunuche, mais je n'ai pas réussi à l'appliquer sur mon fichier. J'ai fait un copier/coller de ton code sur un nouveau module, c'est ça ?

En fait, à terme, mes onglets techniciens porteront les noms propres des dits personnels. Mais ça c'est bon, je pense pouvoir gérer la modif dans le code. Enfin j'espère...
 

Discussions similaires

Statistiques des forums

Discussions
312 658
Messages
2 090 616
Membres
104 610
dernier inscrit
jeanMe