USF de gestion de base de données en 1 seul USF

  • Initiateur de la discussion Initiateur de la discussion loub35
  • Date de début Date de début

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 !

loub35

XLDnaute Junior
Bonjour le Forum, je cherche une demo expliquant la construction d'une USF permettant de gerer une BDD (Ajouter, Modifier, Supprimer) tout simplement...J'ai trouvé un lien sur le forum (en fin de ce message), mais impossible de l'ouvrir : "vous devez vous connecter"...
Quelqu'un peut-il me venir en aide?
Merci

Re: Userform + bouton de modification

--------------------------------------------------------------------------------

Bonjour Gérard, le Forum

Sorry des délais pour te répondre mais avec l'été...

Donc aujourd'hui je suis tombé sur ta question, vieux motard que jamais !

Pour te répondre dans l'ordre, les "i = i + 1" et autres méthodes du même genre sont le B. A. BA pour construire des boucles....

Admettons, tu veux "éplucher" toutes les cellules comprises dans ton Tableau qui va de A1 à Axxx (on ne sait pas pour l'écrire en fixe) donc on va avoir besoin de :

un "i" qui sera "Integer" car on prévoit que tu peux avoir jusqu'à 32 767 lignes dans ton tableau (si Plus on passe en "Long")

un "L" qui sera aussi "Integer" car il va travailler de pair avec le "i"... car il va aller compter le nombre de ligne ("L" pour Ligne !)

Donc on va écrire comme suit les déclarations de Variable:

Sub Gerardiiiiii ()
Dim i As Integer
Dim L As Integer

Ensuite on va dire que L est la dernière Ligne NON-Vide en Partant du Bas (le bas, la dernière Ligne dans Excel est la 65536eme...)

L = Range("A65536").End(xlUp).Row

Donc "L" sait maintenant où est ta dernière entrée en colonne "A"...

Pour passer en reveue toutes les cellules je vais faire une Boucle comme ceci :

For i = 2 to L

Pourquoi 2 ?..... Parceque je pense que tu as une entête dans ton tableau qui ne va pas servir....

Donc on aprt de la Ligne 2 à la Dernière Ligne ("L").... (ok ?)

Ensuite rien de plus facile que de remplir un ComboBox

Private Sub UserForm_Initialize()
Dim i As Integer
Dim L As Integer

L = Range("A65536").End(xlUp).Row

For i = 2 to L
ComboBox1.AddItem Range("A" & i)
End With
Next i

End Sub

Donc à chaque passage de la boucle avec le Next "i" la Combobox avec le AddItem va recevoir la valeur de la cellule "A2", puis au tour suivant "A3" etc jusqu'à la Limite "L"... (ok ?)

Voilà Gérard à quoi servent ces 'i', "j", "x", "L", on peut y mettre tout l'alphabet !!!

Dans l'exemple ci-dessus il n'y a pas besoin d'incrémenter le "i" par i = i +1 car la boucle For "i" le fait d'elle même, mais je pourrais en avoir besoin dans d'autres cas de figures pour fair idem...

Je t'ai fait une démo complète en partant de ton propre fichier, mais étant donné l'ancienneté de ce fil de discussion je te donne rendez-vous dans un fil tout neuf vu que cette question revient en permanence sur ce Forum :

=> DEMO UserForm de Gestion base de données (Ajout/Modif/Supress) en un seul USF

Bonne Soirée
@+Thierry
 
Re : USF de gestion de base de données en 1 seul USF

bonjour loub35
salut Nevil

sur le sujet
une demo de Thierry
 

Pièces jointes

Re : USF de gestion de base de données en 1 seul USF

Oui c'est exactement ça : pouvoir ajouter une donnée, la modifier ou la supprimer. Mais ma base comporte une tableau d'environ 10 colonnes, et n lignes, formatée en LISTE (je me sert des sous-totaux pour des calculs). Je veux aussi inclure une recherche dans ma USF pour choisir les enregistrements à modifier (je pense avec une ListBox). Le format en LISTE sous Excel est-il compatible avec USF de gestion de BDD?
Merci pour ton fichier qui me donne des éléments.
 
Re : USF de gestion de base de données en 1 seul USF

bonjour tout le monde

🙂

toute petite intervention pour corriger une erreur dans le code de nevil

With Worksheets("feuil1")
DernL = .Range("A65536").End(xlUp).Row
End With

lorsque l'on utilise un bloc d'instruction (with end with), il faut rattacher les éléments du bloc(.range...) au bloc lui meme (with...)

sinon, tu recherches la derniere cellule de la feuille active.

ici ca marche car la feuil1 est la feuille active.

salut
 
Re : USF de gestion de base de données en 1 seul USF

Hervé, j'ai une erreur dans ton code mais je ne sais pas la résoudre hihihi.

Lorsque Uf se lance, fait "AJOUTER" pour commencer. Moi ca me donne une erreur du genre "type incompatible" sur la ligne ".Cells(ligne, i) = CDate(Controls("textbox" & i))".
 
Re : USF de gestion de base de données en 1 seul USF

Super ! Merci Hervé, mais il y a un petit bug, comme le dit Nevil qd on clic sur "ajouter" : erreur "type incompatible" ??
Une question : possible de faire tourner l'USF avec une liste (Excel 2003)? : ds le fichier transmis par Hervé, la fonction liste est supprimé car la version Excel est antérieure à Excel 2003.
Je vais manger un bout, je reviens, merci encore
 
Re : USF de gestion de base de données en 1 seul USF

Bonjour Loubs35 et le forum,

Voici ce que tu peux mettre pour éviter le bug :

Public Sub renvoi(ligne As Integer)
Dim i As Byte

With Sheets("Base")
For i = 1 To 6
If Controls("textbox" & i) <> vbNullString Then
Select Case i
Case 1, 6
.Cells(ligne, i) = Controls("textbox" & i)
Case 2
.Cells(ligne, i) = CDate(Controls("textbox" & i))
Case Else
.Cells(ligne, i) = CDbl(Controls("textbox" & i))
End Select
Controls("textbox" & i) = ""
End If Next i
End With

End Sub
 
Re : USF de gestion de base de données en 1 seul USF

Merci lacorse33, une question bête (je suis novice !) : je le met où ce code? ds l'exécution du bouton "modifier"? A ton avis puis-je faire tourner cette USF avec une base en LISTE? (Excel 2003)
 
Re : USF de gestion de base de données en 1 seul USF

L'erreur se produisait lors du clic direct sur le bouton "Ajouter" donc l'ajout des instructions doit être mis comme indiqué.

Je te renvoie le fichier avec la correction qui se trouve dans UserForm1 - Procédure "Renvoi".

Concernant ta dernière question, on peut quasiment tout faire en VBA.
 
Dernière édition:
- 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
4
Affichages
332
Réponses
3
Affichages
518
Réponses
40
Affichages
2 K
Réponses
7
Affichages
308
Retour