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.

29classeur-v14.xlsm (547.67 Ko)

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 Sub

J'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

24classeur-v15.xlsm (545.13 Ko)

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

Re bonjour ThauThème

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.

capture1 capture capture2

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 !

Rechercher des sujets similaires à "incrementer base donnees"