OVH Cloud OVH Cloud

Base de données.

1 réponse
Avatar
Opus
Bonjour,

Comment ajouter ou rechercher des enregistrements via VBA dans une (petite)
base de données gérée avec EXCEL?

Où trouver des exemples?

Merci.

1 réponse

Avatar
Hervé
Salut Opus,
Pour le filtrage, avec AutoFilter. Un exemple, la proc cherche d'abords la
plage de la feuille (fonction Plage) puis le filtrage se fait en 1er sur la
première colonne en recherchant les noms commençants par "Al" ou finissant
par "er", ceci fait, elle recherche alors dans ce 1er filtrage les valeurs
situées entre 100 et 200 sur la 2ème colonne. Si tu as un enregistrement qui
a en 1ère colonne Alain ou Didier et que ces derniers ont en 2ème champ une
valeur de 150 les lignes seront visibles, les autres seront alors cachées.
Il est possible de faire des filtrages assez fins avec les différents
opérateurs (=, <>, >, <, Like, ?, *, #, [!ListeDeLettre], [ListeDeLettre])
Pour l'ajout, il te suffit de trouver la dernière ligne occupée et de
décaler vers le bas de 1 ligne pour effectuer l'enregistrement.
Le code ci-dessous est très simple mais cela peut être un début :

Sub Ajouter(Nom As String, _
Prenom As String, _
Adresse As String)

Dim Fe As Worksheet
Dim Plg As Range
Dim Lg As Long

Set Fe = Worksheets("Feuil1")
Set Plg = Plage(Fe)
Lg = Plg.Rows.Count + 1
Range("A" & Lg) = Nom
Range("B" & Lg) = Prenom
Range("C" & Lg) = Adresse

Set Plg = Nothing
Set Fe = Nothing
End Sub

Sub Filtrer()
Dim Fe As Worksheet
Dim Plg As Range

Set Fe = Worksheets("Feuil1")
Set Plg = Plage(Fe)
With Plg
'filtrage sur la 1ère colonne
.AutoFilter 1, "Op*", xlOr, "*us"
'puis filtrage sur la 2ème colonne
.AutoFilter 2, ">100", xlAnd, "<200"
End With
Set Plg = Nothing
Set Fe = Nothing
End Sub

Function Plage(Fe As Worksheet) As Range
'fonction qui retourne toute la zone
'utilisée dans la feuille
With Fe
Set Plage = .Range(.Cells(1, 1), _
.Cells(.Cells.Find("*", .[A1], -4123, , _
1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
2, 2).Column))
End With
End Function

Hervé.

"Opus" a écrit dans le message news:

Bonjour,

Comment ajouter ou rechercher des enregistrements via VBA dans une
(petite)

base de données gérée avec EXCEL?

Où trouver des exemples?

Merci.