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

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
 

Nevil

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

Salut Loub35,

Est de ce genre la que tu souhaite ?
Seulement le bouton AJOUTER fonctionne dans ce cas la, juste pour voir si je repond a ta question.
 

Pièces jointes

  • Uf.xls
    30 KB · Affichages: 210

pierrejean

XLDnaute Barbatruc
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

  • USF-Address-Stickers-AutoGenerator-V01_20050320114446.zip
    46.4 KB · Affichages: 243
  • USF-Address-Stickers-AutoGenerator-V01_20050320114446.zip
    46.4 KB · Affichages: 245
  • USF-Address-Stickers-AutoGenerator-V01_20050320114446.zip
    46.4 KB · Affichages: 243

loub35

XLDnaute Junior
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.
 

Hervé

XLDnaute Barbatruc
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
 

Hervé

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

re

en attendant les copains pierrejean et nevil

une proposition, pouvant constituer un depart.

j'ai mis les totaux en ligne 2, plus pratique.

salut
 

Pièces jointes

  • Usf-Bdd.zip
    17.2 KB · Affichages: 122
  • Usf-Bdd.zip
    17.2 KB · Affichages: 118
  • Usf-Bdd.zip
    17.2 KB · Affichages: 116

Hervé

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

re

correction d'un bug en ajoutant une simple ligne combobox1.clear

désolé :eek:

salut
 

Pièces jointes

  • Usf-Bdd.zip
    17.2 KB · Affichages: 166
  • Usf-Bdd.zip
    17.2 KB · Affichages: 165
  • Usf-Bdd.zip
    17.2 KB · Affichages: 173

Nevil

XLDnaute Occasionnel
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))".
 

loub35

XLDnaute Junior
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
 

lacorse33

XLDnaute Occasionnel
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
 

loub35

XLDnaute Junior
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)
 

lacorse33

XLDnaute Occasionnel
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:

Discussions similaires

Réponses
29
Affichages
762