Incrementer une base de donnees
Bonjour le forum bonjour à tous,
Dans le classeur joint en PJ, dans la page d'acceuil, il y a un bouton "RECHERCHER UN COURRIER", quand on clique sur ce bouton il ouvre le UserForm2. Dans ce Userform2, toute la partie haute se complète très bien lorsque l'on sélectionne une référence qui existe dans la feuille1 "BASE DE DONNÉES" donc RAS.
CE QUE JE VOUDRAIS FAIRE :
Dans le UserForm2, il y a une partie appelée "REINTEGRATION AU BUREAU DES CABINETS", qui comporte les rubriques suivantes :
- la date de réintégration,
- le nom du réceptionnaire au Bdc
- la suite à donner (destruction, déclassification, archives antenne TSD, Archives publiques (SAEF)
- Nom de la 1er personne habilitée à la destruction
- Nom de la 2ème personne habilitée à la destruction
je voudrais que, quand je rentre des données dans ces rubriques, ces données soient sauvegardées dans la feuille1 "base de données" en fonction de la référence sélectionnée au départ.
Exemple :
a) Je sélectionne la référence 1, tous les champs au dessus de la mention "REINTEGRATION AU BUREAU DES CABINETS" s'affichent correctement.
b) je complète les rubriques suivantes :
- la date de réintégration = 11/04/2017 (je voudrais que cette date se place sur la feuille1 Base de donnée, ligne 3 (car j'ai sélectionné le référence 1), dans la cellule V3 qui correspond à la date de réintégration)
- le nom du réceptionnaire au Bdc = BIRAULT (je voudrais que ce nom se place sur la feuille1 Base de donnée, ligne 3 (car j'ai sélectionné le référence 1), dans la cellule Y3 qui correspond "à la réintégration, réceptionné au Bdc par")
- la suite à donner (destruction, déclassification, archives antenne TSD, Archives publiques (SAEF) = Destruction (je voudrais que VRAI/FAUX se place sur la feuille1 Base de donnée, ligne 3 (car j'ai sélectionné le référence 1), dans la cellule Z3 qui correspond "à destruction ou cellule AA qui correspond à déclassification etc...)
- Nom de la 1er personne habilitée à la destruction = ROUSSEL (je voudrais que le nom ROUSSEL se place sur la feuille1 Base de donnée, ligne 3 (car j'ai sélectionné le référence 1), dans la cellule AE qui correspond "Nom de la 1er personne Habilitée")
- Nom de la 2ème personne habilitée à la destruction = BOUBE (je voudrais que le nom BOUBE se place sur la feuille1 Base de donnée, ligne 3 (car j'ai sélectionné le référence 1), dans la cellule AF qui correspond "Nom de la 2ème personne Habilitée")
Merci pour votre aide et merci par avance à GMB.
Bonjour Lynka, bonjour le forum,
Le premier élément de la ComboBox8 a 0 comme ListIndex, le second a 1, etc. Donc tu peux facilement récupérer le numéro de ligne d'un élément sélectionné (quand il n'y a pas de doublon) avec la propriété [LinstIndex]. Dans ton cas, comme la première valeur se trouve sur la ligne 3 cela revient à dire ListIndex + 3 :
Private Sub CommandButton4_Click()
Dim L As Long
If Me.ComboBox8.Value = "" Then
MsgBox "vous devez renseigner la référence du courrier !"
Me.ComboBox8.SetFocus
Exit Sub
End If
If Me.ComboBox8.ListIndex = -1 Then
MsgBox "La référence du courrier indiquée n'est pas valide!"
Me.ComboBox8.Value = ""
Me.ComboBox8.SetFocus
Exit Sub
End If
If MsgBox("Etes-vous certain de vouloir ENREGISTRER cette réintégration dans la base de données ?", vbYesNo, "Demande de confirmation") = vbYes Then
'Les nouvelles informations concernant la réintégration doivent se positionner dans les cellules vides de la référence sélectionnée (dans la base de données), afin de compléter le dossier
L = Me.ComboBox8.ListIndex + 3
With Sheets("BASE DE DONNEES")
.Range("V" & L).Value = TextBox13
.Range("Y" & L).Value = ComboBox7
.Range("Z" & L).Value = CheckBox7
.Range("AA" & L).Value = CheckBox10
.Range("AC" & L).Value = CheckBox22
.Range("AB" & L).Value = CheckBox9
.Range("AE" & L).Value = CheckBox10
.Range("AF" & L).Value = CheckBox7
End With
End If
End SubJ'ai corrigé une ChecKbox11 qui n'existait pas j'ai mis CheckBox22 sinon ça plantait et rajouté des conditions pour éviter un bug...
J'ai aussi corrigé ça à l'initialisation :
ComboBox8.List = fbdd.Range("A3:A" & fbdd.Range("A" & Rows.Count).End(xlUp).Row).Value
Bonjour ThauThème, Bojour le Forum
Merci pour les codes.
J'ai corrigé mon classeur (enfin surtout le CommandButton4_Click ( ) ), car pour, je te cite :
a) "...J'ai corrigé une ChecKbox11 qui n'existait pas j'ai mis CheckBox22 sinon ça plantait et rajouté des conditions pour éviter un bug.." tu ne m'as pas donné le code VBA a inscrire dans la CheckBox22
b) J'ai aussi corrigé ça à l'initialisation : ComboBox8.List = fbdd.Range("A3:A" & fbdd.Range("A" & Rows.Count).End(xlUp).Row).Value ...", où dois-je mettre ce code
Je ne sais pas si c'est volontaire, mais tu n'as pas joint de classeur modifié.
Excuse mon ignorance, mais ce n'est que mon deuxième classeur avec des codes VBA.
De mon coté je joint le Classeur V15 avec les modifications de codes pour le CommandButton4.
Merci pour ton aide
Bonjour ThauThème, Bonjour le Forum
Plus d'inquiétude, j'ai trouvé la solution, merci ThauThème de m'avoir mis sur la voie, super sympa.
j'aurais d'autres inquiétudes mais dans le futur
Merci VRAIMENT
Bonjour Lynka, bonjour le forum,
lynka a écrit :tu ne m'as pas donné le code VBA a inscrire dans la CheckBox22
Ha bon c'est à moi de faire ça ?!...
lynka a écrit :b) J'ai aussi corrigé ça à l'initialisation : ComboBox8.List = fbdd.Range("A3:A" & fbdd.Range("A" & Rows.Count).End(xlUp).Row).Value ...", où dois-je mettre ce code
Dans ton code original, celui de l'initialisation de l'UserForm, tu t'es trompé d'onglet. Il faut juste corrigé ce qui est en gras dans ma première réponse...
lynka a écrit :Je ne sais pas si c'est volontaire, mais tu n'as pas joint de classeur modifié.
C'est volontaire !... Au passage, je suis très surpris que tu mettes en pièce jointe un fichier complet non anonymisé... Je me suis vite empresser d'ailleurs de tout mettre en vente aux enchères sur le net...
Pour le moment on ne m'a proposé qu'une allumette usagé ou un trombone tordu destiné à ouvrir les lecteurs CD/DVD récalcitrants...
Tu m'as trop fais rire avec, je cite : "Au passage, je suis très surpris que tu mettes en pièce jointe un fichier complet non anonymisé".
Pour l'instant ce fichier ne faut que des allumettes et quelques trombones usagés, car tout ce qui est écrit dedans est faux, donc attends encore un peu, si vraiment tu veux t'offrir une place au soleil
Par contre j'ai un autre souci, j'ai crée un userform MEL (afin d'envoyer un mél automatique).
Dans ce userform MEL il y a 3 textBox (adresse-sujet-message) et deux boutons CommandButton1 = ENVOYER MEL et CommandButton2 = QUITTER
j'ai écris les codes vba suivants :
(Général)
Sub envoyer(Message As String, sujet As String, Adresse As String)
Dim o As Outlook.Application
Set o = New Outlook.Application
Dim Mail As Outlook.MailItem
Set Mail = o.CreateItem(olMailItem)
With Mail
.Subject = "Sujet"
.To = Adresse
.HTMLBody = Message
'.Send
.Display
End With
o.ActiveWindow
Set Mail = Nothing
Set o = Nothing
End Sub
Private Sub CommandButton2_Click()
Unload Me 'nb quitter le formulaire Mel
End Sub
cependant quand je clique sur le bouton CommandButton1 = ENVOYER MEL, rien ne se passe
Bon comme j'ai peur que tu tentes encore une revente, j'ai mis des impressions écrans.
MERCI, au plaisir de te lire.
Re,
Comme disait Pierre vassiliu : Comme je manquais de malice pour faire des affaires, je montais dans mon engin interplanétaire et ne remis plus jamais les pieds sur la terre... Il est parti y'a pas très longtemps d'ailleurs...
Je suis désolé mais sur ce coup là ça sera sans moi. J'ai déjà réussi par le passé de coder pour envoie de mails mais j'y ai laissé mes cheveux, de l'énergie et ma patience.... Depuis, pour envoyer des mails, j'utilise un logiciel de messagerie...
SALUT ThauThème,
Je comprends, et surtout je veux que tu gardes tes cheveux. Merci pour ton aide à bientôt.
Bye
Re,
Pour les cheveux c'est un peu tard... Mais pour les emails en VBA il doit y avoir des milliers d'exemples. Utilise une recherche dans le forum... Bon courage !