CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Aide] VBA

Anorgasmophobie
Anorgasmophobie
Niveau 8
14 avril 2007 à 20:42:08

:hello:

Bon voila j´ai un petit probleme avec du code en VBA et j´aurais besoin d´aide pour en faite savoir quelle partie du code correspond en faite a un enregistrement de numéros d´intervenants pour chaques taches, en gros c´est un enregistrement de numéros propres a chaques intervenants d´un projet asssocié a une taches précises. Donc de excel vers acces.

(J´espere avoir été le plus clair possible :peur: )

Le code :

1 ere partie :

Sub ajouterPersonnel()

´données à enregistrer
Dim nomEmploye As String
Dim prenomEmploye As String
Dim initialesEmploye As String

´variables nécessaires pour le traitement de l´enregistrement
Dim lgEmployeEnCours As Integer ´indice de parcours du tableau des employés

´ le traitement

´ le traitement concernant l´enregistrement proprement dit

lgEmployeEnCours = lgDepartPersonnel ´initialisation au premier employé à traiter

nomEmploye = Worksheets(REFERENCES).Cells(lgEmployeEnCours, colNomPersonnel)
While (nomEmploye <> "")

´récupération des informations à enregister dans la base de données

prenomEmploye = Worksheets(REFERENCES).Cells(lgEmployeEnCours, colPrenomPersonnel)
initialesEmploye = Worksheets(REFERENCES).Cells(lgEmployeEnCours, colInitialesPersonnel)

´ enregistrement de l´employé dans la base de données : appel du sous-programme enregistrerUnEmploye()
Call enregistrerUnEmploye(nomEmploye, prenomEmploye, initialesEmploye)

´Passage à l´employé suivante
lgEmployeEnCours = lgEmployeEnCours + 1
nomEmploye = Worksheets(REFERENCES).Cells(lgEmployeEnCours, colNomPersonnel)

Wend
MsgBox ("Les employés ont bien été enregistrés dans la base de données.")

End Sub

´=================================================
==============================================
Sub enregistrerUnEmploye(nom As String, prenom As String, initiales As String)

Dim requeteSQL As String

´construction de la requete d´insertion
requeteSQL = requeteAjoutEmploye(nom, prenom, initiales)

´ouverture de la base de données de Gestion de projets
Call ouvertureBase

´exécution de la requete d´insertion
cnxBase.Execute (requeteSQL)

´ouverture de la base de données de Gestion de projets
Call fermetureBase

End Sub

´=================================================
==============================================

Function requeteAjoutEmploye(nomE As String, prenomE As String, initialesE As String) As String

Dim strSQL As String
Dim chargeAvecPoint As String

strSQL = "INSERT INTO INTERVENANT (nomEmploye, prenomEmploye, initialesEmploye )" & _
" VALUES(""" & nomE & """, """ & prenomE & """, """ & initialesE & """)"

´renvoie la requete SQL ainsi construite
requeteAjoutEmploye = strSQL

End Function

2 eme partie :

´ ===================== variables et constantes globales du programme ==========================================
Public cnxBase As ADODB.Connection
Public Const piloteBase As String = "Microsoft.Jet.Oledb.4.0"

´
==================================================
==========================
Public Const cheminBase As String = "E:\Info-Gestion\PROJET\l´application PERSONNEL à consulter\EXEMPLE.MDB" ´à modifier
´
==================================================
==========================

Public Const REFERENCES As String = "Références"
Public Const lgDepartPersonnel = 2 ´ ligne du tableau où est mentionné le premier employé
Public Const colInitialesPersonnel = 2 ´ colonne du tableau où sont mentionnées les initiales de l´employé
Public Const colNomPersonnel = 3 ´ colonne du tableau où est mentionné le nom de l´employé
Public Const colPrenomPersonnel = 4 ´ colonne du tableau où est mentionné le prénom de l´employé
Public Const colNumPersonnel = 6 ´ colonne du tableau où sera mentionné le numéro de l´employé (écupéré dans la BD

Sub ouvertureBase()

´ Nous testons si le fichier est accessible
If Len(Dir(cheminBase)) > 0 Then
´ Déclaration de la variable de connexion
Set cnxBase = New ADODB.Connection

´Définition du pilote de connexion
cnxBase.Provider = piloteBase

´Définition de la chaîne de connexion
cnxBase.ConnectionString = cheminBase

´Ouverture de la base de données
cnxBase.Open

Else
MsgBox "La base n´a pas pu être trouvée" & vbCrLf & _
chemin & vbCrLf & _
"n´est pas un chemin valide.", vbCritical + vbOKOnly
End If

End Sub

´=================================================
==============================================

Sub fermetureBase()
cnxBase.Close
End Sub

´=================================================
========================================

Function recupInfo(requete As String) As Variant
´Permet de retrouver une donnée dans la base de données en exécutant la requête passée en paramètre

Dim tuples As New ADODB.Recordset

´ouverture de la base de données de Gestion de projets
Call ouvertureBase

´récupération du résultat de la requête
tuples.Open requete, cnxBase

´positionnement sur le premier enregistrement renvoyé
tuples.MoveFirst

´récupère la donnée souhaitée
If tuples(0) = Null Then
recupInfo = 0
Else
recupInfo = tuples(0)
End If

tuples.Close
´permet de libérer l´espace mémoire attribué à cette variable
Set tuples = Nothing

´ouverture de la base de données de Gestion de projets
Call fermetureBase

End Function

3eme partie :

Sub recupTousLesNumEmploye()
´Permet de retrouver les numéros des employés à partir de leurs initiales

Dim initiales As String
Dim lgPersonnelEnCours As Integer
Dim leNumeroTrouve As Integer

lgPersonnelEnCours = lgDepartPersonnel

initiales = Worksheets(REFERENCES).Cells(lgPersonnelEnCours, colInitialesPersonnel)

While (initiales <> "")
´récupération du numéro d´employé associé aux initiales mentionnées dans la feuille de calcul
leNumeroTrouve = recupUnNumEmploye(initiales)

´écriture de ce numéro récupéré dans la colonne associée dans la feuille de calcul
Worksheets(REFERENCES).Cells(lgPersonnelEnCours, colNumPersonnel) = leNumeroTrouve

´Passage à l´employé suivant
lgPersonnelEnCours = lgPersonnelEnCours + 1
initiales = Worksheets(REFERENCES).Cells(lgPersonnelEnCours, colInitialesPersonnel)

Wend

End Sub

´=================================================
==============================================

Function recupUnNumEmploye(initialesE As String) As Integer
´Permet de retrouver le numéro d´employé à partir de ses initiales

Dim requeteRecupUnNumEmploye As String

´construction de la requête
requeteRecupUnNumEmploye = "SELECT NumEmploye FROM INTERVENANT WHERE InitialesEmploye= """ & initialesE & """ "

´récupération du numéro de la tâche concernée
recupUnNumEmploye = recupInfo(requeteRecupUnNumEmploye)

End Function

:merci: d´avance pour votre aide (Dieu sait que j´en est besoin :p) )

Anorgasmophobie
Anorgasmophobie
Niveau 8
15 avril 2007 à 20:38:20

personne ne peut m´aider ? :-(

dnob700
dnob700
Niveau 10
16 avril 2007 à 16:14:25

non, ton code est trop long pour qu´on le décortique, en plus peu de personnes font du VBA. D´autre part, si tu ne comprend pas ce programme, je ne vois pas à quoi notre réponse servirait, puisque tu ne pourrais rien en faire (tu ne pourrais pas modifier ou réutiliser ce programme si tu ne le comprend pas).

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment