Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Applications disponibles dans l'espace de téléchargement > Multi Mini BD
Vous inscrire
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus


Réponse
 
LinkBack Outils de la discussion
Vieux 10/09/2007, 21h41   #1 (permalink)
PascalXLD
Super Moderator
 
Avatar de PascalXLD
 
Date d'inscription: février 2005
Localisation: Rennes
Version Excel : Excel 2000 (PC)
Messages: 7 639
Par défaut Multi Mini BD

Utilisez ce fil de discussions pour commenter et échanger sur Multi Mini BD

Gestion simplifiée de petites bases de données dans un même classeur.

Navigateur.
Recherches et tris.
Analyses des données.
Outils de maintenance.
Mini-guide.
Cette version supporte maintenant les images, les adresses Email et Internet
__________________
Pascal(Visitez mon Blog Photo)

Vous pouvez devenir "Supporter XLD", plus de renseignements ICI
PascalXLD est connecté maintenant   Réponse avec citation
ANNONCES
Vieux 06/11/2007, 09h19   #2 (permalink)
fred-bene
XLDnaute Junior
 
Date d'inscription: novembre 2006
Messages: 90
Par défaut Re : Multi Mini BD

Salut.
Sympa cette petite BD.
Mais comment peut-on se débarasser du raccourci dans la ligne de commande ?

Merci.

Fred
fred-bene est déconnecté   Réponse avec citation
Vieux 07/11/2007, 18h18   #3 (permalink)
DidierC
XLDnaute Nouveau
 
Date d'inscription: avril 2005
Messages: 8
Par défaut Re : Multi Mini BD

Bonsoir.

Pour enlever le menu de MMBD il suffit de faire ALT [F8] et executer la macro ThisWorkbook.EffaceMenu
( C'est indiqué dans le Mini Guide ).

Didier.
DidierC est déconnecté   Réponse avec citation
Vieux 08/11/2007, 09h54   #4 (permalink)
fred-bene
XLDnaute Junior
 
Date d'inscription: novembre 2006
Messages: 90
Par défaut Re : Multi Mini BD

Merci.
Je n'avais pas tout lu.

@+

Fred
fred-bene est déconnecté   Réponse avec citation
Vieux 15/11/2007, 16h08   #5 (permalink)
David92Fr
XLDnaute Nouveau
 
Date d'inscription: novembre 2007
Messages: 13
Red face Re : Multi Mini BD

Bonjour,

Vraiment un beau travail !

Je me sens un peu honteux de poser mes questions, mais je me lance :

- Comment modifier la BD pour y intégrer des champs avec des listes ?
- Y at'il moyen d'inclure des champs avec liste en cascade (permettant de voir apparaître dans ces listes certaines informations - qui peuvent être diiférentes - en fonction d'éléments sélectionnés) ?

Merci beaucoup.

David
David92Fr est déconnecté   Réponse avec citation
Vieux 15/11/2007, 19h32   #6 (permalink)
DidierC
XLDnaute Nouveau
 
Date d'inscription: avril 2005
Messages: 8
Par défaut Re : Multi Mini BD

Bonsoir.

Pour modifier le Navigateur afin d'y intégrer des listes déroulantes il faudra passer par
le code VBA...
Vous y trouverez la section [PERSONNALISATION] qui explique la marche à suivre pour
"personnaliser" MMBD. ( Les exemples utilisent le cas des listes déroulantes ).

Pour les listes en cascade(s), ce n'est pas prévu pour le moment. Une piste toutefois...
Toujours dans la "personnalisation" il faudrait tester les changements effectués dans
la liste d'origine et en fonction du résultat charger la liste de destination.

Didier.
DidierC est déconnecté   Réponse avec citation
Vieux 16/11/2007, 14h52   #7 (permalink)
David92Fr
XLDnaute Nouveau
 
Date d'inscription: novembre 2007
Messages: 13
Par défaut Re : Multi Mini BD

Bonjour et merci Didier,

J'ai bien fait les modifications des listes déroulantes dans la partie "Personnalisation". Tout fonctionne, c'est magnifique !!!

Là où cela se corse pour moi, c'est que je voudrais que les informations présentes dans la liste déroulante "MOTIFS" puissent varier en fonction de l'Item sélectionné dans la liste "PRESENCE".

Par exemple, si je sélectionne dans la liste déroulante "PRESENCE" l'Item "Interme", seuls les Items Entité, Groupe, Multisites apparaissent dans la liste "MOTIFS" et non les autres Items.

Que dois-je faire ???

Merci pour votre aide...

David


'--------------------------------
'Mettre le nom de la 8ème colonne à personnaliser.
PersoNomColonne = "PRESENCE"

'Ici on détermine automatiquement le numéro de la colonne à personnaliser.
'( La première colonne n'est pas personnalisable ).
For BoucleCol = 8 To NbColonnes
If Cells(1, BoucleCol) = PersoNomColonne Then PersoNuméroColonne = BoucleCol
Next BoucleCol

'Ensuite on effectue le traitement de la personnalisation

If NomBD = PersoNomBD And Cells(1, PersoNuméroColonne) = PersoNomColonne Then
'Personnalisation

'Par exemple : Création d'une liste de choix
Controls("Champ" & PersoNuméroColonne).Clear
Controls("Champ" & PersoNuméroColonne).AddItem "Interne"
Controls("Champ" & PersoNuméroColonne).AddItem "XXXX"
Controls("Champ" & PersoNuméroColonne).AddItem "YYYY"
Controls("Champ" & PersoNuméroColonne).AddItem "Externe"
Controls("Champ" & PersoNuméroColonne).AddItem "ZZZZZ"
'C'est dans cet ordre que les items de la liste apparaitront.

'Pour changer la taille du Control.
Controls("Champ" & PersoNuméroColonne).Width = 100
Controls("Champ" & PersoNuméroColonne).Height = 16

'Pour activer la liste déroulante.
Controls("Champ" & PersoNuméroColonne).ShowDropButtonWhen = fmShowDropButtonWhenAlways

Else

End If

'--------------------------------
'Mettre le nom de la 9ème colonne à personnaliser.
PersoNomColonne = "MOTIFS"

'Ici on détermine automatiquement le numéro de la colonne à personnaliser.
'( La première colonne n'est pas personnalisable ).
For BoucleCol = 9 To NbColonnes
If Cells(1, BoucleCol) = PersoNomColonne Then PersoNuméroColonne = BoucleCol
Next BoucleCol

'Ensuite on effectue le traitement de la personnalisation

If NomBD = PersoNomBD And Cells(1, PersoNuméroColonne) = PersoNomColonne Then
'Personnalisation

'Par exemple : Création d'une liste de choix
Controls("Champ" & PersoNuméroColonne).Clear
Controls("Champ" & PersoNuméroColonne).AddItem "Entité"
Controls("Champ" & PersoNuméroColonne).AddItem "Groupe"
Controls("Champ" & PersoNuméroColonne).AddItem "Multisites"
Controls("Champ" & PersoNuméroColonne).AddItem "Emploi salarié"
Controls("Champ" & PersoNuméroColonne).AddItem "RTT"
Controls("Champ" & PersoNuméroColonne).AddItem "Vacances"
Controls("Champ" & PersoNuméroColonne).AddItem "Congés"
Controls("Champ" & PersoNuméroColonne).AddItem "Retraite"
Controls("Champ" & PersoNuméroColonne).AddItem "Nada"
'C'est dans cet ordre que les items de la liste apparaitront.

'Pour changer la taille du Control.
Controls("Champ" & PersoNuméroColonne).Width = 100
Controls("Champ" & PersoNuméroColonne).Height = 16

'Pour activer la liste déroulante.
Controls("Champ" & PersoNuméroColonne).ShowDropButtonWhen = fmShowDropButtonWhenAlways

Else

End If
David92Fr est déconnecté   Réponse avec citation
Vieux 16/11/2007, 22h15   #8 (permalink)
DidierC
XLDnaute Nouveau
 
Date d'inscription: avril 2005
Messages: 8
Par défaut Re : Multi Mini BD

Bonsoir.

Le code que vous avez mis ci-dessus est dèjà un code de personnalisation.
Je ne peux pas résoudre directement votre problème sans connaitre la stucture exacte de votre BdD...

Toutefois j'ai intégré votre pb dans la BdD exemple de MMBD 5.00 ( BD_Bidon ) :

J'ai ajouté une nouvelle colonne dans la BdD : Perso3 qui servira de liste "cascade" modifiée en fonction du contenu du champ Perso2.

J'ai "déclaré" une nouvelle variable dans le code VBA du Navigateur : Dim PersoRéfColOrigine As Integer ( A mettre avec les autres déclarations - En haut du code VBA )

J'ai remplacé le code VBA du Navigateur, Section [PERSONNALISATION] par le code ci-dessous...

'===DEBUT DE LA MODIFICATION DU CODE============================================== ============

'--------------------------------
'Mettre le nom de la 2ème colonne à personnaliser.
PersoNomColonne = "Perso2"

'Ici on détermine automatiquement le numéro de la colonne à personnaliser.
'( La première colonne n'est pas personnalisable ).
For BoucleCol = 2 To NbColonnes
If Cells(1, BoucleCol) = PersoNomColonne Then PersoNuméroColonne = BoucleCol
Next BoucleCol

'Ensuite on effectue le traitement de la personnalisation

If NomBD = PersoNomBD And Cells(1, PersoNuméroColonne) = PersoNomColonne Then
'Personnalisation

'Par exemple : Création d'une liste de choix
Controls("Champ" & PersoNuméroColonne).Clear
Controls("Champ" & PersoNuméroColonne).AddItem "Masculin"
Controls("Champ" & PersoNuméroColonne).AddItem "Féminin"
Controls("Champ" & PersoNuméroColonne).AddItem "Autre"
'C'est dans cet ordre que les items de la liste apparaitront.

'Pour changer la couleur du fond et du texte.
Controls("Champ" & PersoNuméroColonne).BackColor = vbYellow
Controls("Champ" & PersoNuméroColonne).ForeColor = vbRed

'Pour activer la liste déroulante.
Controls("Champ" & PersoNuméroColonne).ShowDropButtonWhen = fmShowDropButtonWhenAlways

Else

End If

'--------------------------------
'Mettre le nom de la 3ème colonne à personnaliser.
PersoNomColonne = "Perso3"

'Ici on détermine automatiquement le numéro de la colonne à personnaliser.
'( La première colonne n'est pas personnalisable ).
For BoucleCol = 2 To NbColonnes
If Cells(1, BoucleCol) = PersoNomColonne Then PersoNuméroColonne = BoucleCol
Next BoucleCol

'Ensuite on effectue le traitement de la personnalisation

If NomBD = PersoNomBD And Cells(1, PersoNuméroColonne) = PersoNomColonne Then
'Personnalisation

'Pour changer la couleur du fond et du texte.
Controls("Champ" & PersoNuméroColonne).BackColor = vbBlue
Controls("Champ" & PersoNuméroColonne).ForeColor = vbYellow

'Pour activer la liste déroulante.
Controls("Champ" & PersoNuméroColonne).ShowDropButtonWhen = fmShowDropButtonWhenAlways

'---------------------------------------------------------------
'
'On souhaite que cette liste se modifie en fonction du contenu
'de la liste précédente. Il faut pour cela créer une série de procédures.
'Ces procédures sont à placer tout en bas du code VBA...
'
'---------------------------------------------------------------
'Sub Champ11_Change() 'Il faut connaitre le No du champ d'origine
'
'If NomBD = PersoNomBD Then PersoChamp11
'
'End Sub
'-----
'Sub Champ11_Click() 'Il faut connaitre le No du champ d'origine
'
'If NomBD = PersoNomBD Then PersoChamp11
'
'End Sub
'-----
'Sub PersoChamp11() 'Il faut connaitre le No du champ d'origine
'
'If NomBD <> PersoNomBD Then Exit Sub
'
' PersoRéfColOrigine = 11 'Il faut connaitre le No de la colonne du champ d'origine de l'évènement
' PersoNuméroColonne = 12 'Il faut connaitre le No de la colonne du champ "cascade"
'
' Controls("Champ" & PersoNuméroColonne).Clear
'
' If Controls("Champ" & PersoRéfColOrigine) = "Masculin" Then
' Controls("Champ" & PersoNuméroColonne).AddItem "Cas MA"
' Controls("Champ" & PersoNuméroColonne).AddItem "Cas MB"
' Controls("Champ" & PersoNuméroColonne).AddItem "Cas MC"
' End If
'
' If Controls("Champ" & PersoRéfColOrigine) = "Féminin" Then
' Controls("Champ" & PersoNuméroColonne).AddItem "Cas F1"
' Controls("Champ" & PersoNuméroColonne).AddItem "Cas F2"
' Controls("Champ" & PersoNuméroColonne).AddItem "Cas F3"
' End If
'
'End Sub
'---------------------------------------------------------------

Else

End If

'--------------------------------
'On fait ensuite la même chose pour la 4ème colonne à personnaliser.
'--------------------------------
'Puis pour les colonnes suivantes...
'--------------------------------
'.../...
'--------------------------------
'Et pour une autre BD.
'--------------------------------

End Sub 'NE JAMAIS SUPPRIMER CETTE LIGNE

Sub Champ11_Change() 'Il faut connaitre le No du champ d'origine

If NomBD = PersoNomBD Then PersoChamp11

End Sub

Sub Champ11_Click() 'Il faut connaitre le No du champ d'origine

If NomBD = PersoNomBD Then PersoChamp11

End Sub

Sub PersoChamp11() 'Il faut connaitre le No du champ d'origine

If NomBD <> PersoNomBD Then Exit Sub

PersoRéfColOrigine = 11 'Il faut connaitre le No de la colonne du champ d'origine de l'évènement
PersoNuméroColonne = 12 'Il faut connaitre le No de la colonne du champ "cascade"

Controls("Champ" & PersoNuméroColonne).Clear

If Controls("Champ" & PersoRéfColOrigine) = "Masculin" Then
Controls("Champ" & PersoNuméroColonne).AddItem "Cas MA"
Controls("Champ" & PersoNuméroColonne).AddItem "Cas MB"
Controls("Champ" & PersoNuméroColonne).AddItem "Cas MC"
End If

If Controls("Champ" & PersoRéfColOrigine) = "Féminin" Then
Controls("Champ" & PersoNuméroColonne).AddItem "Cas F1"
Controls("Champ" & PersoNuméroColonne).AddItem "Cas F2"
Controls("Champ" & PersoNuméroColonne).AddItem "Cas F3"
End If

End Sub

'===FIN DE LA MODIFICATION DU CODE============================================== ==============

( Attention : Ce code ne teste pas si les données sélectionnées/saisies dans Perso3 sont compatibles avec celles de Perso2 ).

Ces modifications fonctionnent dans MMBD 5.00 qui, du coup, vient de passer en version 5.01.

A vous d'adapter cela à votre BdD. ( En cas de pb n'hésitez pas à laisser un message ici ).

Bon Courage et A+

Didier.
DidierC est déconnecté   Réponse avec citation
Vieux 20/11/2007, 15h22   #9 (permalink)
David92Fr
XLDnaute Nouveau
 
Date d'inscription: novembre 2007
Messages: 13
Par défaut Re : Multi Mini BD

Merci Didier.

J'ai fait les modifications et tout marche à merveille. Merci beaucoup pour votre aide.

David

Dernière modification par David92Fr 20/11/2007 à 15h24.
David92Fr est déconnecté   Réponse avec citation
Vieux 30/11/2007, 18h16   #10 (permalink)
lmico
XLDnaute Nouveau
 
Date d'inscription: novembre 2007
Messages: 5
Par défaut Multi Mini BD Customisation ?

Bonsoir Didier,

J'ai beaucoup apprécié ta MMBd, et je me suis amusé à la modifier largement, mais j'atteint les limite de ma modeste compétence sur deux points :
- En cliquant sur le bouton "Champs image" que j'utilise en format d'un de mes champs du formulaire, je souhaiterais que le fenetre explorateur s'ouvre directement dans le dossier qu regroupe toutes les photos de ma base;
- Et d'autre part, pour pouvoir trimballer cette base sur diverses machine, j'aimerais pouvoir intégrer toutes les adresses de ces photos en adresses relatives (references adresses en fonction de la position de la feuille excel de la base, et non de l'emplacement sur le PC)

Peux tu me donner un coup de main la dessus ?

Merci
lmico est déconnecté   Réponse avec citation
Vieux 01/12/2007, 12h01   #11 (permalink)
DidierC
XLDnaute Nouveau
 
Date d'inscription: avril 2005
Messages: 8
Par défaut Re : Multi Mini BD

Bonjour Imico, le forum.

Pour tenter de répondre à ton problème, je te propose…

Sur l'onglet MMBD_Guide :
( A déprotèger au préalable - Il n'y a pas de mot de passe )

Mettre en
Cellule M2 Chemin par défaut des fichiers images
Cellule M3 D:\Mes images
Cellule M4 Chemin par défaut des fichiers attachés
Cellule M5 E:\Mes fichiers

Dévérouiller les cellules M3 et M5 ( Sinon on ne pourra pas en changer le contenu ).
( L'onglet se reprotègera automatiquement ).


Dans le code VBA du Navigateur :

Déclarer une nouvelle variable ( Au début du code du Navigateur )
Dim CheminFichiers as String

Ajouter la ligne de code dans la procédure Sub CheminImage_Click()
( Juste en dessous du Sub )
CheminFichiers = ThisWorkbook.Sheets("MMBD_Guide").Range("M3").Valu e

Ajouter la ligne de code dans la procédure Sub CheminFichierAttaché_Click()
( Juste en dessous du Sub )
CheminFichiers = ThisWorkbook.Sheets("MMBD_Guide").Range("M5").Valu e

Dans le code de la procédure Function SélectionnerFichier()
Remplacer la ligne
.lpstrInitialDir = "C:\"
par la ligne
.lpstrInitialDir = CheminFichiers


Cela devrait pouvoir répondre à ta première demande.
Pour la suite, je ne suis pas sur de bien comprendre mais peut être que ce que
je viens de te proposer te servira de piste

Bon courage et A+

Didier.

Complément d'info.
Le contenu des cellules M3 et M5 est bien évidemment à adapter en fonction des adresses des fichiers...

Dernière modification par DidierC 02/12/2007 à 16h59.
DidierC est déconnecté   Réponse avec citation
Vieux 02/12/2007, 11h34   #12 (permalink)
lmico
XLDnaute Nouveau
 
Date d'inscription: novembre 2007
Messages: 5
Par défaut Re : Multi Mini BD

Pardon doublon

Dernière modification par lmico 02/12/2007 à 12h01.
lmico est déconnecté   Réponse avec citation
Vieux 02/12/2007, 11h35   #13 (permalink)
lmico
XLDnaute Nouveau
 
Date d'inscription: novembre 2007
Messages: 5
Par défaut Re : Multi Mini BD

encore doublon

Dernière modification par lmico 02/12/2007 à 12h02.
lmico est déconnecté   Réponse avec citation
Vieux 02/12/2007, 11h38   #14 (permalink)
lmico
XLDnaute Nouveau
 
Date d'inscription: novembre 2007
Messages: 5
Par défaut Re : Multi Mini BD

Un grand merci, Didier.

Je teste et te tiens au courant

Laurent
lmico est déconnecté   Réponse avec citation
Vieux 03/12/2007, 20h26   #15 (permalink)
lmico
XLDnaute Nouveau
 
Date d'inscription: novembre 2007
Messages: 5
Par défaut Re : Multi Mini BD

Merci et bravo :

C'est parfait : cela fonctionne parfaitement, y compris en mettant une adresse relative (..\xxx\yyy) dans les cellule M3 et M5

En revanche, je n'arrive pas à retourner une adresse relative dans la cellule cible du bouton formaté en "Image". Je n'obtiens qu'une adresse absolue du type c:\zzz\www\xxxx\yyy...

Laurent
lmico est déconnecté   Réponse avec citation
ANNONCES
Réponse



Outils de la discussion

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Multi Tache - Multi Processus - Multi thread MikeB Forum Excel 0 13/12/2006 13h52
Multi Mini BD franck17 Forum Excel 0 08/11/2006 18h38
Evolution de l'outil Multi Mini BD? Gestion simplifiée de BDD sous Excel yochma23 Forum Excel 6 01/10/2006 20h00
total multi feuilles +multi condition Luc Forum Excel 5 15/04/2006 13h36
Listbox multi colonnes multi sélections Gipéhel Forum Excel 5 13/02/2006 16h09


Fuseau horaire GMT +2. Il est actuellement 14h42.


(C) 2006 Excel Downloads