base de données excel 2003

kerhorre

XLDnaute Nouveau
bonjour!
Je dispose d'1 fichier de base de données généalogique triée de différentes manières sur plusieurs feuilles. Je voudrai pouvoir marquer une ligne (en modifiant sa couleur ou couleur de texte) d'1 feuille et répercuter cette modification automatiquement sur les lignes correspondantes des autres feuilles (lignes qui n'ont pas le même numérotage...!)
Merci de toutes réponses!

Kerhorre
 

Pièces jointes

  • liste_relevés_ter.zip
    41.3 KB · Affichages: 159

Modeste

XLDnaute Barbatruc
Re : base de données excel 2003

Bonsoir Kerhorre et bienvenue,

Comme ta question semble concerner Excel, tu aurais dû la poser sur le forum ad hoc.
D'autre part, pour répondre à ta question, il existe une solution avec macro et une solution sans macro (si tu acceptes d'ajouter une colonne supplémentaire). Mais avant d'aller plus loin, il faudrait que tu précises différentes choses:
- que fait-on des cellules déjà colorées en rouge foncé? Elles doivent rester dans cette même couleur??
- Quand une ligne est colorée, les autres lignes préalablement colorées sont remises en "transparent"?
- Qu'est-ce qui permet de déterminer que 2 lignes, dans deux feuilles différentes "correspondent"? Quels champs doivent être identiques? Toutes les cellules de chaque enregistrement?

Bref, dis-nous en un peu plus!
 

kerhorre

XLDnaute Nouveau
Re : base de données excel 2003

Bonsoir et merci de votre message!

Il est vrai que j'ai mal positionné mon message,mais je n'ai pas réussi à le rediriger sur le bon forum...
Je suis partant pour toute solution: j'ai possibilité de modifier le nombre de colonnes en A ou AA,AB...
Ma base (feuille homme) contient 12000 lignes d'enregistrements correspondant à des n° de photos,des dates, des noms de naissances; une ligne répertoriée en rouge correspond à un enregistrement d'infos sur un fichier de généalogie (Hérédis)
lLa feuille femme est un tri différent de la feuille homme que j'utilise pour recoupement et je souhaite la modifier (couleur de la ligne d'enregistrement) pour rechercher des infos à noter. Ces modifications devraient se faire automatiquement d'une feuille à l'autre dans leur ligne relative ou sur une cellule de cette ligne; genre de liaisons entre feuilles mais avec des n° d'enregistrements de lignes différents...J'aurai plusieurs feuilles dans ce même fichier feuille conjoint, feuille père avec ces mêmes besoins!
j'espère être un peu plus clair? Mais ce n'est pas évident à décrire...

Merci par avance de votre compréhension.
Kerhorre
 

Modeste

XLDnaute Barbatruc
Re : base de données excel 2003

Bonjour kerhorre,

Il est vrai que j'ai mal positionné mon message,mais je n'ai pas réussi à le rediriger sur le bon forum...
PascalXLD (s'il passe par ici et le juge utile) déplacera le fil dans le bon forum.

une ligne répertoriée en rouge correspond à un enregistrement d'infos sur un fichier de généalogie (Hérédis)
D'accord, mais ma question était: si on active une couleur de remplissage lorsqu'une ligne est sélectionnée ... que devient l'ancienne couleur de remplissage? Peut-elle être supprimée? Par exemple, en ligne 10 de ta feuille "femme a", quatre cellules sont colorées en rouge foncé, avec la mention "à revoir". C'est de ce cas-là que je parle. Les lignes dont la police est en rouge ne seront pas modifiées si la couleur de remplissage est changée.

J'aurai plusieurs feuilles dans ce même fichier feuille conjoint, feuille père avec ces mêmes besoins!
J'entends bien ... Ce qu'il faudrait que tu nous dises, c'est sur base de quels champs détermine-t-on si deux enregistrements sont identiques? Faut-il que les infos de chaque colonne sur les 2 feuilles comparées soient identiques ou seulement certaines colonnes?

A titre d'exemple, ton fichier en retour. Ici, c'est une macro qui est utilisée (il faut donc que les macros soient activées à l'ouverture). Dans la feuille "femme a", un double-clic en colonne A colore la ligne entière en vert pâle et -si la commune, le nom, le prénom et l'âge sont identiques dans une ligne de la feuille "homme a"- cette ligne est colorée de la même manière.
Attention, au stade actuel, les quatres cellules colorées en rouge ne le sont plus ensuite ... d'où l'une de mes questions!

Fais-nous savoir ce qu'il en est.
 

Pièces jointes

  • Kerhorre liste_relevés.zip
    19.5 KB · Affichages: 124

kerhorre

XLDnaute Nouveau
Re : base de données excel 2003

Bonjour et déjà u grand merci pour cette réponse!

QUESTION 1: oui,si on active une couleur de remplissage à la ligne ou à des cellules sélectionnées cela annule la couleur précédente (j'utilise la couleur jaune pour un premier repérage des lignes qui m'intéressent, puis lorsque j'ai noté les infos de cette ligne sur autre logiciel, je modifie (ici en rouge, en vert dans votre exemple)
QUESTION 2: Il faut que les infos de chaque colonne sur les feuilles 2,3,4,ou 5 comparées soient identiques _ les colonnes ne bougent pas_ les lignes d'enregistrement seules bougent
Au départ 1 fichier avec 1 feuille,puis copies de cette feuille triée différemment.
Ici femme a ligne 21= ligne 32 homme a= ligne 19 mère

Encore merci pour votre compréhension
Kerhorre
 

Modeste

XLDnaute Barbatruc
Re: Re : base de données excel 2003

Re-bonjour kerhorre,

[Dites, les amis du forum, c'est moi ou les Américains ont débarqué? J'ai plein de mentions en Anglais à l'écran ... Là dessus je vais tenter de "Post a reply to this thread"]

kerhorre, donc, disais-je, j'attendais que tu testes mon fichier de ce matin avant de continuer, mais il semblerait que tu sois repassé depuis ...
Sans savoir, j'ai continué d'avancer en tenant compte de tes dernières indications (plusieurs feuilles triées différemment, l'ensemble des cellules d'une ligne devant être identique à toutes les cellules d'une autre ligne d'une autre feuille).

La pièce jointe doit donc être testée. Tu nous diras ensuite si ça ressemble à ce que tu voulais!
 

Pièces jointes

  • Kerhorre liste_relevés (V2).zip
    28.3 KB · Affichages: 113

kerhorre

XLDnaute Nouveau
Re : base de données excel 2003

Bonsoir!
Message bien reçu avec un fichier qui m'intéresse beaucoup!
J'ai fait des essais, cela fonctionne bien du fichier femme a vers les autres feuilles, mais je souhaiterai (pendant que l'on se penche sur le problème) travailler indifféremment de la feuille homme ou conjoint ou père vers les autres feuilles (et vice versa) à partir de la 1ère cellule de ligne sur laquelle je travaille ...
Je débute en macro: comment insérer cette macro dans mon fichier existant sans perdre mes données enregistrées en texte rouge?
et annuler une erreur de ma part lors du marquage de la 1ère cellule de ligne.
Beaucoup d'interrogations encore de ma part ...
Bonne soirée et merci de votre travail bénévole

Kerhorre
 

Modeste

XLDnaute Barbatruc
Re : base de données excel 2003

Bonsoir,

Bonne nouvelle: une toute petite adaptation et le code fonctionne pour toutes les feuilles (petits remerciements, au passage à Staple1600 qui m'avait fait connaître cette possibilité)
Mauvaise nouvelle: je dois jouer le taxi. Je repasse demain dans la matinée, promis!
 

Modeste

XLDnaute Barbatruc
Re : base de données excel 2003

Bonjour,

Avec les légères modifications évoquées hier soir, voici la nouvelle version. Le double-clic en colonne A fonctionne de la même manière au départ de n'importe quelle feuille (il faudra que tu précises si tu as d'autres feuilles dans le classeur, où la recherche ne devrait pas se faire)

Le code se trouve à présent dans l'Objet "ThisWorkbook". Il te suffit de copier le code qui y figure dans le même objet dans ton propre fichier (dis-nous si tu as besoin d'explications plus détaillées).

Le fait de copier la macro et de l'exécuter sur ton propre fichier n'aura d'incidence que sur les couleurs de remplissage. Les couleurs de police et autres attributs (gras, italique, etc) ne sont pas impactés.

Quant à une "erreur de marquage" que tu aurais pu commettre ... Il faudrait que tu sois plus précis (souviens-toi, malgré tout, que le double-clic sur un début de ligne, avant même de colorer la ligne concernée, désactive les couleurs de remplissage de la feuille en cours, puis de chacune des autres ... avant de colorer les lignes corrspondantes).

Ceci réduit-il le nombre des interrogations? :)

Une fois de plus, fais des tests dans ce fichier-ci, puis si tout est conforme à tes attentes, copie le code dans ton classeur (de préférence une copie de ton classeur, pour poursuivre les tests: il y a peut-être des situations auxquelles tu n'aurais pas songées. Les effets d'une macro ne pouvant être annulés -sauf en fermant le fichier sans l'enregistrer- il vaut toujours mieux être prudent!)

Et puis tu nous donneras un écho, bien entendu!?
 

Pièces jointes

  • Kerhorre liste_relevés (V3).zip
    27.8 KB · Affichages: 117
Dernière édition:

kerhorre

XLDnaute Nouveau
Re : base de données excel 2003

Bonjour et merci pour cette V3!

Cela correspond bien à mon souhait, après quelques manipulations et tests simples cela s'avère conforme à mon désir!
Il me reste à mettre en place cette macro VBA, manip que je ne connais pas...
Je vais partir d'un nouveau fichier "relevés" avec feuille1= homme; feuille 2= mère; feuille 3= conjoint; feuille4= commune; feuille5= dates.
j'ai donc besoin d'infos plus détaillées pour copier le code ou la macro de "ThisWorkbook" afin de rendre mon nouveau fichier semblable à votre fichier V3 qui me convient.
En ce qui concerne une erreur de manip sur une cellule de ligne non concernée, je ferai attention!
Autre question de débutant: si je rajoute des enregistrements de lignes supplémentaires dans la feuille "homme", cela aura-t-il des répercussions sur les autres feuilles ou la structure de la macro? A priori non, parce qu'elles n'existeront pas tant que je n'aurai pas fais de copies retriées dans les feuilles concernées.
Je suis désolé de reposer encore des questions... et je tiens à vous remercier de votre patience et de votre compétence.


Je vous souhaite un beau week-end ensoleillé comme en Bretagne!
Cordialement, Kerhorre
 

Modeste

XLDnaute Barbatruc
Re : base de données excel 2003

Re-bonjour,

Pour tâcher d'être complet et précis, un petit mode d'emploi en pièce jointe pour copier le code de la macro (Tu nous diras si complet et précis étaient au rendez-vous :confused:)
L'ajout de lignes supplémentaires dans une des feuilles n'aura pas d'incidence (la seule chose c'est que la macro ne pourra trouver de correspondance dans les autres feuilles).

Je suis désolé de reposer encore des questions... et je tiens à vous remercier de votre patience et de votre compétence
Ma patience t'est toute acquise ... Pour le reste, on fait ce qu'on peut ;)


Je vous souhaite un beau week-end ensoleillé comme en Bretagne!
Ben ça, par contre, c'est pas gagné! :(

A bientôt,
 

Pièces jointes

  • Kerhorre_ModeEmploi.pdf
    73.9 KB · Affichages: 198

kerhorre

XLDnaute Nouveau
Re : base de données excel 2003

Bonsoir!
Je reviens depuis peu sur le même sujet et après plusieurs essais et manip je constate que lorsque je crique sur la cellule d'enregistrement d'une autre ligne, cela efface la couleur de la ligne précédemment surlignée hors je souhaite conserver la couleur sur toutes les lignes contrôlées et enregistrées par ailleurs indirectement sur Hérédis. Les lignes vierges sont des éléments de recherches futures, les colorées sont là pour ne pas revenir dessus ou refaire les mêmes photos ou sur les données des individus...
Demain, je referai d'autres essais en repartant de mon fichier dupliqué "relevés"et de la V3 à recopier!

Encore merci pour tout , bonne soirée et le dimanche sera plus agréable!
Cordialement, Kerhorre
 

Modeste

XLDnaute Barbatruc
Re : base de données excel 2003

Bonjour kerhorre,


je souhaite conserver la couleur sur toutes les lignes contrôlées
Aaargh! Il me semble bien avoir signalé dans mes précédents messages, que le double-clic remettait la couleur de chaque feuille en transparent. Si, finalement, ce n'est pas ce que tu veux, ouvre le fichier (si ce n'est déjà fait) et appuie sur Alt+F11. Double-clique sur l'objet "ThisWorkbook" (à gauche), puis dans le code (à droite) repère la ligne:
Code:
Cells.Interior.ColorIndex = xlNone
... au début du code et efface cette ligne (ou met-la en commentaire en la faisant précéder d'une apostrophe: la ligne se colore en vert). Fais ensuite la même chose avec la ligne suivante (quelques ligne plus bas)
Code:
f.Cells.Interior.ColorIndex = xlNone
Enregistre ensuite le fichier et refais des tests!

Bon dimanche, s'il doit être meilleur!
 

kerhorre

XLDnaute Nouveau
Re : base de données excel 2003

Bonsoir!
Après un bon bol d'air marin des environs de Morgat (presqu'île de Crozon), je suis revenu faire des modifs et les essais qui suivent pour dire où nous en sommes.
En se qui concerne le code VBA, après effacement des lignes de code concernées cela marche correctement, les lignes d'enregistrement traitées sont et restent colorées! Mais je souhaiterai garder la possibilité de rajouter des enregistrements (3000 à 4000 en plus des 12000)avec des cellules prémarquées en jaune ce qui me permet de trouver des rapprochements d'infos suivant les feuilles traitées. Une fois traitées, je les coche en cellule A pour surligner en vert la ligne concernée. Il serait peut-être possible de surligner que les 24 premières colonnes plutôt que toute la ligne?
Je suis satisfait du travail accompli, cela marche déjà très bien, mais on devient un tantinet exigeant....
Bonne soirée belge et à bientôt!
Cordialement, Kerhorre
 

Modeste

XLDnaute Barbatruc
Re : base de données excel 2003

Bonjour,

Cette fois-ci également, tu vas pouvoir modifier le code toi-même ;)
remplacer la ligne
Code:
Target.EntireRow.Interior.Color = RGB(210, 255, 210)
(la propriété EntireRow, utilisée ici, indique qu'on appliquait la couleur de remplissage à la ligne entière)
Par quelque chose comme:
Code:
Target.Resize(, 5).Interior.Color = RGB(210, 255, 210)
Dans cette instruction, au départ de la cellule cible (celle de la colonne A, sur laquelle tu vas double-cliquer) on redimensionne la plage sur 5 colonnes (cellule en cours + les 4 suivantes, à droite) ... à toi de déterminer le nombre de cellules en largeur!

Même chose, une quinzaine de lignes plus bas, dans l'insruction
Code:
f.Range("A" & i).EntireRow.Interior.Color = RGB(210, 255, 210)
... remplacer EntireRow, par Resize(, xx)
 

Discussions similaires

Réponses
7
Affichages
372
Réponses
3
Affichages
213

Statistiques des forums

Discussions
312 330
Messages
2 087 337
Membres
103 524
dernier inscrit
Smile1813