Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1076 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  MAJ base de données sur excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

MAJ base de données sur excel

n°1551947
titine1984
Posté le 01-05-2007 à 21:14:55  profilanswer
 

Bonjour,
 
J'ai une boite de dialogue sur laquelle on renseigne son nom, prénom, n° et date début et de fin. (genre "fiche personnel" )
 
Les informations remplies bascluent dans un onglet excel. (fiche individuelle)
 
Puis j'aimerais que ces informations viennent actualiser une base de données avec les noms, prénoms, n° d'autres personnes.
Il s'agit uniquement de mettre à jour des données pour une personne deja existante.
 
Ok pour la boite de dialogue
Ok pour la bascule des infos
Mais... comment mettre à jour les champs pour une seule personne sans que les autres soient modifiés?
 
Merci

mood
Publicité
Posté le 01-05-2007 à 21:14:55  profilanswer
 

n°1551966
jpcheck
Pioupiou
Posté le 01-05-2007 à 22:05:44  profilanswer
 

quels sont les champs différenciateurs de ta BDD Excel ?

n°1551974
titine1984
Posté le 01-05-2007 à 22:40:20  profilanswer
 

Les différents champs à remplacer :  
- nom
- prénom
- n°
- date de début
- date de fin
 
Chaque employé possède sa fiche.
Chaque mise à jour par le biais de la boite de dialogue est individuelle.

n°1551998
AprilThe5t​h
Posté le 02-05-2007 à 01:45:52  profilanswer
 

Alors,
 
je ne comprends pas pourquoi, les infos saisies par chaque personne n'actualisent pas directement la BDD finale.
En effet, la saisie des infos pourrait en même temps être ajoutée dans un onglet Excel ET actualiser ta base en même temps... exactement de la même manière...
La base de données finale est également du Excel ?
 
Ou alors (dis moi si je me trompe) dans le premier cas (la bascule) les infos sont simplement ajoutées sans être modifiées si une personne déjà existante change ses infos ?
 
Dans ce cas pour modifier les infos dans la base de données finale (si c'est du excel), tu fais une recherche sur ta feuille sur les noms et prenoms.
 
On imagine que dans ta boite de dialogue, TxtBx1 est le nom et TxtBx2 le prénom et que dans ta feuille excel, les noms sont inscrits dans la colonne 1 et les prénoms en colonne 2 : donc tu parcours ton fichier Excel et tu dis :  
dim A as long
for A=1 to 65536
  if cells(A,1)=TxtBx1 and cells(A,2)=TxtBx2 then
  ...
  exit for
next A
 
Dis moi si je suis à coté de la plaque.
 
Je voudrais profiter de cette occasion pour adresser une speciale dédicace à jpcheck qui passe un temps infini à trouver des réponses à (presque) toutes les personnes qui rencontrent des problèmes sur ce site.
Ca méritait d'être noté et salué.
 

n°1552588
titine1984
Posté le 02-05-2007 à 20:32:02  profilanswer
 

En effet, tout se passe sur Excel.
Les infos saisies peuvent tout de suite actualiser la BDD, mais je ne sais pas comment le faire...  
 
Il n'est pas obligatoire de passer par une étape intermédiaire, je ne savais pas comment faire autrement.
 
Les infos de la boite de dialogue viennent remplacer (actualiser) les infos de la BDD.
 
Il faudrait donc que je fasse une recherche puis seulement après je pourrais insérer les infos?
 
AprilThe5th

n°1552622
ingenieurc​esi
Posté le 02-05-2007 à 21:25:05  profilanswer
 

ouais c'est une solution
 
sinon ta solution pour les calendrier m'interesse toujours.

n°1552629
ingenieurc​esi
Posté le 02-05-2007 à 21:40:26  profilanswer
 

et pourquoi ne pas utiliser Données\Formulaires

n°1552854
AprilThe5t​h
Posté le 03-05-2007 à 01:13:47  profilanswer
 

Comme je te l'ai dit, il faut faire une recherche par nom et prémon sur ta feuille Excel.
Dis-moi dans quelles colonnes se situent ces 2 informations et je t'envoie le code pret à l'emploi.
Essaie de me donner le PLUS d'infos possible afin que mon aide soit réellement efficace.

n°1552879
titine1984
Posté le 03-05-2007 à 06:55:03  profilanswer
 

colonne A : matricule
colonne B : nom
colonne C : prénom
colonne D: date de début
colonne E : date de fin
 
Je voulais insérer une zone de texte modifiable pour le n°, nom et prénom. Puis sur excel, dans la zone de visualisation des résultats, j'ai une formule recherchev
 
Merci pour ton aide AprilThe 5th!!
 
PS pour ingenieurcesi : je n'ai pas encore trouvé le code pour faire fonctionner mon calendrier

n°1553068
eric455
Posté le 03-05-2007 à 12:10:29  profilanswer
 

Bonjour à tous
Bonjour titine
 
N’ayant que très peu de renseignements sur la macro, je te propose ce code pour la recherche de la ligne du n° de matricule en colonne « A ». Si celui-ci peut être modifié, il faut récupérer dans une autre colonne
La fonction « find » renvoie la ligne où est trouvé le n°
 

Code :
  1. num_mat = textbox1.text
  2. With Worksheets("bdd" ).Range("a1:a65536" )
  3.     Set Var = .Find(num_mat, LookIn:=xlValues)
  4.     If Var Is Nothing Then
  5.     maligne = "0"   'pas de bdd de commencée, feuille vierge
  6.     Else
  7.     maligne = Var.Row
  8.     End If
  9. End With


 
après tu envoies avec :
range("a" & maligne)=textbox1.text
range("b" & maligne)
.......
 
Si j'ai bien compris !!!
 
Eric

mood
Publicité
Posté le 03-05-2007 à 12:10:29  profilanswer
 

n°1553114
ingenieurc​esi
Posté le 03-05-2007 à 13:29:42  profilanswer
 

si ca t'interesse
 
http://cjoint.com/?fdnB0PFCDA
 
mais à adapter (nom des feuilles et des paramètres)
 
bonne journée

n°1553393
titine1984
Posté le 03-05-2007 à 20:05:47  profilanswer
 

Pour vous aider :  
http://cjoint.com/?fducIynttw
 
1. Cliquez sur MAJ
2. Remplir les champs de la boite de dialogue
3. Je voudrais que les infos saisies mettent à jour automatiquement la base de données, en remplacant les données précédentes.
 
Attention, le document n'est pas du tout au point.
Je vous remercie vraiment pour votre aide!

n°1553417
eric455
Posté le 03-05-2007 à 21:04:57  profilanswer
 

Bonsoir à tous
Bonsoir Titine
 
Je n'ai pas "calandar" mais essaie ceci
 

Code :
  1. Private Sub CommandButton1_Click()
  2. num_mat = ComboBox2.Text
  3. With Worksheets("Fiche synthétique" ).Range("a1:a65536" )
  4.    Set Var = .Find(num_mat, LookIn:=xlValues)
  5.    If Var Is Nothing Then
  6.    maligne = "0"   'pas de bdd de commencée, feuille vierge
  7.    Else
  8.    maligne = Var.Row
  9.    End If
  10. End With
  11. Range("D" & maligne) = calandar1.Text
  12. Range("e" & maligne) = calandar2.Text
  13. Unload Me
  14. End Sub


 
Eric

n°1555132
seniorpapo​u
Posté le 04-05-2007 à 07:42:46  profilanswer
 

Bonjour,
Dans la proposition d'eric455, remplace les lignes 11 et 12 par:
Range("D" & maligne) = Calendar1.Value
Range("e" & maligne) = Calendar2.Value
Cordialement
 
edit:
 
La recherche d'unicité sur le matricule est meilleure que celle sur nom&prénom , le matricule étant, ici, l'identifiant de l'individu.
 
Le contrôle "calendrier" s'obtient en cochant dans la liste des contrôles supplémentaires(clic droite sur la boîte à outils)  la case : contrôle calendrier...


Message édité par seniorpapou le 04-05-2007 à 08:02:32
n°1555504
eric455
Posté le 04-05-2007 à 18:17:44  profilanswer
 

Bonsoir à tous
 
Merci seniorpapou pour le renseignement sur le calandar, je devais être fatigué
 
Eric


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  MAJ base de données sur excel

 

Sujets relatifs
Séparer la couche d'accès aux données : TransfertObject[resolu]icher une image dont le lien se trouve dans une base de donnée
ecriture en base 8 en vbarecherche d une valeur et copie sous excel
[MYSQL/PHP]Probleme lors d'un import CSVFaire apparaitre un Bouton d'une macro sous excel sous condition
Impression avec Excel dans un fichier externeAccess 2000 ajoute données partielle
Ecriture dans un fichier ExcelVBA - Détecter commande "Imprimer" dans Excel
Plus de sujets relatifs à : MAJ base de données sur excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR