MAJ automatique d'une BDD à partir d'un classeur source

Salut le forum!

Je reviens avec mon histoire de base de données que j'aimerais mettre à jour automatiquement à partir d'un autre fichier source.

CB60 m'a déjà beaucoup aidé, notamment au niveau des cases à cocher. Le problème, c'est que tout n'est pas au point, et que mon service (le chef en particulier) attend un peu en fait que je ponde cette nouvelle procédure automatique.

Du coup, j'ai modifié mon approche, plus de case à cocher, uniquement des listes. De fait, les informations à récupérer dans la Base de données ne sont plus que du texte.

Donc voilà, je cherche un moyen, par le biais d’un clic sur un bouton, de récupérer sur une ligne seulement un certain nombre d’info du fichier source.

J’aimerais aussi qu’à chaque clic, qu’une nouvelle ligne soit créée dans la base de données.

Voilà le fichier source, celui ou l’on saisi les informations quand on a un appel :

https://www.excel-pratique.com/~files/doc/Copie_de_Fiche_de_suivi_veille.xls

Voilà le fichier base de données, qui doit être mis à jour à chaque clic

https://www.excel-pratique.com/~files/doc/Base_essai.xls

Plus d’explication dans les fichiers.

PS: les 2 cases à cocher au début sont juste là pour faire du "graphisme", c'est tout.

PS2 : le fichier 2 contien des liens (formule =recherchev() ), mais je pense que la méthode n'est pas la bonne.

Merci beaucoup!!

Re!

Je sais, ce n'est pas bien, mais je me permets de faire une petite remontée dans la hiérarchie. J'ai essayé pas mal de temps hier soir, et je vois bien qu'il faut passer par du VBA pour mon problème...

Mon chef me demandant encore ce matin où en était le projet, je me permets ce petit "up"

désolé,

Et encore merci pour votre aide!

Hello,

je planche depuis quelque temps sur ta demande. Etant moi-même débutant, cela n'a pas été rapide. En revanche grâce à l'aide des spécialistes du forum, j'ai pu te créer quelque chose. Attention, le fichier étant trop gros pour être collé, j'ai été obligé de supprimer tes feuilles Noms et Communes. A toi de les recopier et de remettre à jour les liaisons des listes. Attention, pour plus de fonctionnalité, n'oublie pas de les masquer par la suite (Format-Feuille-Masquer). De même, la convivialité (couleurs, etc) en a souffert. A toi de travailler en copieé-collé par rapport à ton projet initial.

Pour la suite, je te prépare un tri automatique dans le code pour que les saisies se classent chronollogiquement par jour en premier et par heure en second.

https://www.excel-pratique.com/~files/doc/T1b5SSaisiepourbasededonneespour_envoi.xls

Tiens moi au courant pour savoir si cela te convient.

Bien cordialement,

Elfi

Jeremie25,

je te précisait précédemment que les spécialistes du forum m'ont aidé. L'étiquette veut que je nomme les auteurs, ce que je n'ai pas fait. Je remédie à cette marque d'impolitesse involontaire mais avérée, en présentant mes excuses à l'auteur.

Voici le code:

Sub Copie()

End Sub

Ce qui est super, c'est qu'il est commenté et permet de comprendre le cheminement. Bravo à Myta.

Bien cordialement à tous,

Elfi

Salut le forum!

Salut à toi

je rentre de congés ce matin, excusez moi pour mon silence radio. je n'ai pas eu le temps encore de regarder ton lien.

je te donne des nouvelles dès que j'ai le temps, je pense dans l'après midi!

Mais merci d'avance!

'zètes trop sympa!

Pas d'escuses, tout le monde a le droit de se reposer. Pas de blem. A te relire.

Cordialement,

Elfi

Salut!

J'ai essayé ton fichier : FRANCHEMENT, c'est SUPER!

Je ne m'attendais pas à un tel travail!

C'est super clean et intuitif, et la base de donnée est exactement comme je le voulais.

J'ai donc rechargé mes listes sur 2 onglets supplémentaires (celui des communes "pèse" près de 600 lignes)

Le problème, (le seul!!!) c'est que avec plus de 1 onglet, quand je clic sur mon bouton "mettre à jour la base", je n'arrive pas tout de suite sur ton onglet "message", qui est bien en première position, mais c'est mon onglet "communes" qui est en surbrillance. Du coup, on perd énormément en lisibilité et en intuitivité, car je dois jongler entre des onglets "intermédiaires", qui polluent un peu tout ça; J'ai peur que les réfractaires à l'informatiques dans mon service s'y perdent.

Peut on cacher certain onglet, et pas d'autres? Est-ce que celà résoudrait mon problème?

Je crois comprendre. Tu dois tout masquer (outil-feuille-masquer) sauf la feuille accueil. Ensuite, cela devrait fonctionner. Tiens moi au courant,

Elfi

Génial, ça fonctionne impéccablement

juste une dernière petite chose :

quand je veux faire une nouvelle saisie, dans ma partie "descriptif de l'événement", j'ai du texte "fixe" qui s'efface à chaque fois, il s'agit de tout ce qu'il y a en noir sous ma ligne en tiret (commune, canton).

c'est bizare non?

J'ai rajouté une ligne, est-ce pour celà?

Merci! 8)

Vérifie ta formule en C46 et suivantes, tu as dû modifier quelquechose. Chez moi, ça ne le fait pas.

P.S. petit supplément conviviale pour le message, à remplacer dans le classeur et à recoller au code.

https://www.excel-pratique.com/~files/doc/feuille_message.xls

Cordialement,

Elfi

Wa, sympa le smiley 8)

Bon, en fait je ne l'ai peut etre jamais dit, mais je suis une vrai quille en VBA...je ne sais même pas comment ont voit le code, et je panne rien du tout en fait!

du coup, je panique dès qu'un truc ne fonctionne pas!

Alors j'ai peur ne jamais arriver à insérer le smiley...lol

en fait, j'avais un peu remis en page ton modèle, en supprimant des lignes en haut, etc etc, en dédoublant le code postale du nom de la commune (mais en créant une autre ligne "code postal"), et depuis, quand je clic sur "nouvelle saisie", ça m'efface tout cette section du descriptif de l'événement.

Je dois y aller, je te remerci pour tout ça en tout cas. Si tu as réponses à ses ultimes questions, c'est cool, sinon, à demain!

Bye!

PS : il est possible qu'a chaque clic sur le bouton "nouvelle saisie" on se retrouve en haut le la feuille "saisie" et non à l'endroit du bouton un peu plus en bas?

Attention, explications artisanales d'un débutant.

a) Pour acceder au code, dans ton cas: tu clique droit sur l'onglet de la feuille. Tu arrive au général. Tu vas sur le module 1 et les differents codes apparaissent. Ils sont titrés.

b) Pour la feuille message, il te suffit de la copier dans le classeur. Un message te dira la feuille "message" existe déjà, voulez-vous la remplacer. Tu répond oui et le code s'appliquera automatiquement à ta nouvelle feuille puisqu'elle porte le même nom.

c) Pour t'entrainer un peu, dans le code

accéderàlasaisie(),

la ligne Sheets("saisie").Visible = True signifie, je rend la feuille saisie visible

la ligne Sheets("saisie").Select signifie, je selectionne cette feuille

Pour ta demande, il ne reste plus qu'à se positionner sur une case du haut de la feuille.

Ainsi, en rajoutant: Range("A2").Select, ton curseur ira directement en A2

La dernière ligne Sheets("Accueil").Visible = False te masque la feuille "accueil".

Tu dois pouvoir faire cela tout seul, c'est trés amusant et formateur.

d) Pour ce qui est de tes changements de présentations, il te faut impérativement réadapter tes formules initiales qui ne correspondent plus aux zones que tu as rajouté.

Bon courage,

Elfi

J'ai oublié de te préciser qu'après le clic droit sur l'onglet, tu opte pour visualiser le code.

Sorry,

Elfi

Voilà voilà, tout fonctionne, j'ai bien saisi le système du VBA

c'est assez intuitif en fait.

un dernière question

quand j'ouvre le fichier, comment on fait pour que cela soit toujours la feuille accueil qui s'ouvre en premier?

sinon merci beaucop, un bon travail d'équipe, lol 8)

Là, tu me colle. Pour cela, je me contente de retourner à l'accueil avant de quitter. Peu être peu tu le demander dans le forum par une autre question. Je pense qu'il faut une macro qui ferme toutes les feuilles sauf accueil quand on quitte.

Bien cordialement

Elfi

Coucou, me revoilou,

je me suis renseigné sur ta dernière question. Myta et Galopin01 m'ont bien aidé.

Alors voila:

en premier lieu, tu dois mettre "accueil" en première feuille. Or, je me suis rendu compte chez moi que "message" la précédait. Si c'est le cas pour toi aussi, tu dois déplacer message.

Ensuite, tu clique gauche sur l'onglet puis visualiser le code.

Là tu vas sur thisworkbook

Voici la macro de Galopin01 qui marche à merveille.

Private Sub Workbook_BeforeClose(Cancel As Boolean) 'par Galopin01'

End Sub

Fais en un copier et colle la dans Thisworkbook.

Non seulement tu arriveras toujours sur "accueil" à l'ouverture mais tu n'auras même plus besoin d'enregistrer les changements quand tu sortira, cela se fera automatiquement.

Te voici muni d'un bel outil.

A bientôt pour d'autres aventures et bravo encore aux amis du forum qui t'ont aidé, notamment, Myta, Claude, Galopin01, et les autres.

Amicalement,

Elfi

PS:pense à indiquer résolu si tu n'as plus besoin de cette question.

Au fait, tant qu'à faire, voici le produit fini. Je t'ai rajouté un bouton annulation dans la feuille saisie.

https://www.excel-pratique.com/~files/doc/kchl0Saisiepourbasededonneespour_envoi.xls

Amicalement,

Elfi

Raaa, c'est énorme!!

La communauté de ce forum est vraiment génial!

sans vous rien aurait été possible!

Bon je n'ai plus qu'une seule question :

j'ai essayé de protégé la feuille de saisie (en prenant soin de laisser non protégées les cellules qui doivent être remplies à la main)

le problème c'est que quand je clic sur mon bouton en bas pour mettre à jour ma BDD, il faut que je rentre mon mot de passe. du coup, la feuille se retrouve déveirouillée.

je veux protéger pour avoir une petite sécurité, vis a vis de possibles fausses manips de la part des collègues. je préfère prévenir que guérir.

vous avez une idée?

sinon merci!! J'vous paiyerais bien un demi à tous!

EDIT : Ah ouais, merci pour le produit fini!! De mon coté j'avais remanier un peu. Je vais juste repomper sur ton modèle l'anulation de la saisie, je ne sais pas comment tu as fais, mais je vais bien voir ça dans le code!

Décidement, on ne se quitte plus,

pour répondre à ta question, méthode à suivre:

Clicgauche sur onglet-Visualiser le code-selectionne module 1 et va sur la macro "valider la saisie".

Avant la première ligne de la macro (Sheets("base").Visible = True), tu insère celle-ci:

Sheets("saisie").Unprotect Password:="elfi"

Cela signifie que tu déprotège ta feuille. Attention, "Elfi" est mon mot de passe, à toi de le remplacer par le tien.

Ensuite, tu descend en bas du code. Tu vas trouver ceci:

Sheets("saisie").Select

Selection.ClearContents

ce qui signifie Je selectionne la case (fusionnée) A38:D38 et j'efface son contenu

Après ce pavé, tu insère ceci

Sheets("saisie").Protect Password:="elfi"

ce qui signifie, je protège la feuille "saisie" avec le mot de passe Elfi.

Normalement, ça fonctionne,

pour le demi, c'est quand tu veux, tchin-tchin,

amicalement,

Elfi

J'allais oublier, je crois me souvenir que la macro "annulerlasaisie" se trouve dans le module 2.

Bon W.E.

Elfi

Rechercher des sujets similaires à "maj automatique bdd partir classeur source"