Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

base de données

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

alex60

XLDnaute Occasionnel
Bonjour,

J'ai fait appel à ce forum il y a peu de temps afin de réaliser une feuille de saisie qui alimente une base de données (le tout sous excel). Cf fichier ci-joint

Seulement voilà, lorsque j'ai modifié la mise en forme du document, la macro ne fonctionne plus. Apparamment, le problème se pose quand les valeurs à copier ne sont plus dans la même colonne.

Pour rappel, je voudrais transposer les valeurs de la feuille "saisie" dans le tableau de la feuille "base".

N'hésitez pas si je n'ai pas été suffisamment clair.

Merci
 

Pièces jointes

Re : base de données

Tout d'abord merci pour ta réponse DAN,

C'est ce que je veux à quelques petits détails.

En faite, je voudrais que lorsque l'on clique sur le bouton Valider, on ait la possibilité de ne pas entrer les valeurs dans la base de données, c'est dire qu'il y ait une msgbox qui donne le choix de valider ou non les données saisies.

Toujours dans le même esprit, ce serait bien si on pouvait vider les cellules une fois qu'elles sont entrées dans la base. Là où je pense que je vais devenir embêtant c'est que je veux vider les cellules mais je veux garder les formules qui sont dedans...

Dernier point, je voudrais détecter si toutes les cellules sont remplies lors de la validation (ceci pour éviter que l'on oublit de remplir un champs)

Je me rends bien compte que ma demande est complexe et je vous remercie d'avance de votre attention.
 
Re : base de données

re,

En faite, je voudrais que lorsque l'on clique sur le bouton Valider, on ait la possibilité de ne pas entrer les valeurs dans la base de données, c'est dire qu'il y ait une msgbox qui donne le choix de valider ou non les données saisies.
Ai-je mal compris ta demande car ta macro fait déjà cela.
vider les cellules une fois qu'elles sont entrées dans la base.
OK, fait dans le fichier ci-joint
...détecter si toutes les cellules sont remplies lors de la validation (ceci pour éviter que l'on oublit de remplir un champs)
Désolé mais j'avais supprimé une instruction dans ta macro de mon précédent fichier.

A te lire
Dan
 

Pièces jointes

Re : base de données

rebonjour,

Effectivement, elle faisait déja la msgbox de validation... Désolé

Sinon c'est parfait, j'obtiens ce que je veux.
J'ai mis une protection pour éviter que l'on modifie d'autres champs que ceux à remplir (mot de passe : 0000 si tu veux jeter un oeil)
En rose ce sont les champs à remplir et en jaune ceux qui restent fixe.

Par contre lorsque l'on valide est-il possible de dire à l'utilisateur (s'il a oublié de remplir une ou des cellules) le nom de la ou des cellules oubliées???


Merci
 

Pièces jointes

Re : base de données

re,

Remplace ta macro par celle-ci:
Code:
Sub Macro2()
Dim Msg As String, Style As String, Title As String, Response As String, a As String, i As String
Dim Plg As Range, cel As Range
On Error Resume Next
Application.ScreenUpdating = False
Set Plg = Range("A4,B7,B11,B15,B20,B24,B28,C5,D28,G20,H20,I20,J20,K15,L15,M15")
Msg = "Souhaitez-vous que ces valeurs soient entrées dans la base de données?"
Style = vbYesNo + vbCritical + vbDefaultButton2
Title = "Exportation de données"
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then
For Each cel In Plg
Select Case cel
Case Is = ""
i = cel.Address
a = i & ", " & a
End Select
Next cel
MsgBox "Il manque une donnée dans la(es) cellule(s) suivante(s) " & a: Exit Sub
absentes": Exit Sub
Call Sauve
    Application.CutCopyMode = False
Else
    MsgBox "OK, données non conservées"
End If
End Sub
Une remarque concernant SET PLG : pourquoi mets tu les références de cellules contenant des formules comme E4 à L4 et F20. Il n'est point besoin de les renseigner puisqu'elles contiennent une formule dépendant de l'encodage effectué dans les cellules en rose.

A te lire
Dan
 
Re : base de données

rere,

J'ai essayer ta macro mais ça ne marche pas quand toutes les cellules sont remplies, apparemment un problème sur la ligne :
absentes": Exit Sub
Sinon elle détecte bien les cellules vide.

Pour répondre à ta question, si j'avais mis les cellules E4 à L4 et F20... dans SET PLG c'était pour que si quelqu'un supprime par erreur une de ces cellules alors le message "il manque des données" ce serait affiché.
C'est vrai qu'avec la protection que j'ai rajouté le problème ne se posait plus mais seulement voilà, je me suis aperçu que la protection empêche le transfert des données dans la feuille "base" car elles sont protégées...

Pas terrible... As-tu une solution???
 
Re : base de données

re,

Oups ! "absentes": Exit Sub" --> c'est une erreur. Enlève cela de la macro.

Pour ce qui est de la protection, il faut connaitre le mot de passe et déprotéger la feuille avant et reportéger après.

Quel est le mot de passe que tu vas prendre ?

A te lire
Dan
 
Re : base de données

Je viens d'essayer mais ça ne marche pas... Il y a le message "il manque des données dans le(les) cellule(s)" qui s'affiche sans qu'aucune cellule ne soit mentionnée.

Pour le mot de passe tu peux mettre "bibi" par exemple mais je pourrais le modifier si je veux, non???
 
Re : base de données

Re,

Il doit y avaoir un pb dans ton fichier.
voici le tien.

Dis moi si tu as un pb et à quel endroit.
Il n'y a pas encore de mot de passe sauf ta protection (qu'il faudra enlever)

A te lire
Dan
 

Pièces jointes

Re : base de données

Re,

J'ai regardé pour ta protection.
Dans la macro SAUVE, après With Sheets("Base") mets :
Code:
.Unprotect Password:="bibi"
et juste avant Sheets("Saisie").Select mets :
Code:
.Protect Password:="bibi"
N'oublie pas le point avant chaque instruction.

Dan
 
Re : base de données

Je viens de réessayer mais j'ai tjrs le même problème.

Je comprends pas parce toutes mes cellules sont remplies mais quand je valide j'ai le message "Souhaitez-vous que ces valeurs soient entrées dans la base de données?" qui s'affiche et quand je clique sur Oui j'ai le message suivant "Il manque une donnée dans la(es) cellule(s) suivante(s) " qui s'affiche.

Comme je te disais tout à l'heure, il me dit qu'il y a des cellules vides alors qu'elles sont toutes remplies.

Quand tu test le fichier ça marche pour toi?
 
Re : base de données

re,

OK je vois ce dont tu veux parler. Désolé mais en recopiant j'ai enlevé une instruction.
Entre NEXT CEL et CALL SAUVE
mets :
Code:
If Application.CountA(Plg) <> 17 Then
MsgBox "Il manque une donnée dans la(es) cellule(s) suivante(s) " & a
MsgBox "OK, données non conservées": Exit Sub
End If

Dan
 
Dernière édition:
Re : base de données

Super ça marche!!!!

Vraiment fort...

Merci d'avoir consacré du temps pour mon problème.

Je pense que mon document doit être au point grâce à toi. Reste à voir si lors de son utilisation je vois d'autres améliorations à faire...

Encore un grand merci à toi.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
569
Réponses
5
Affichages
699
Réponses
15
Affichages
843
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…