Récupération donnée VBA

  • Initiateur de la discussion Initiateur de la discussion Morris
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Morris

XLDnaute Nouveau
Bonjour à tous,

Je suis nouveau sur ce forum et jusque là les réponses des membres m'ont pas mal aidé sur beaucoup de points. Cependant aujourd'hui je bloque sur une partie d'une formule de macro.
Le fichier concerné est joint pour faciliter la compréhension.

Mon problème est le suivant:

J'ai créé un fichier générant un numéro de chrono pour envoyer des courriers.
Dans la feuille "Choix" je rentre mes informations dans les zones combinées ainsi que dans la cellule D14 "Objet".
Le bouton "Obtenir chrono" transfère ces informations dans la seconde feuille "Sauvegarde chrono".
Dans la feuille "Sauvegarde chrono" les informations transmises génèrent un code dans la colonne "Numéro chrono".

Ce que je souhaite c'est pouvoir rapatrier dans la feuille "Choix" et dans la cellule D16 le dernier numéro de chrono généré dans la Colonne "Numéro chrono" à chaque transfère de données entre la feuille "Choix" et la feuille "Sauvegarde chrono".

Voici le VBA de la macro "VALIDATION" qui est affectée au bouton "Obtenir chrono", la partie entre les lignes de guillemets est la portion de code qui me pose problème:

Sub VALIDATION()
Dim derlig, sRedacteur, sStructure, sDestinataire, sJJ, sMM, sAAAA, sObjet, sNumérochrono

'Recuperation des donnees
With Worksheets("Choix")
sRedacteur = .DropDowns("Zone combinée Rédacteur").List(.DropDowns("Zone combinée Rédacteur").ListIndex)
sStructure = .DropDowns("Zone combinée STRUCTURE").List(.DropDowns("Zone combinée STRUCTURE").ListIndex)
sDestinataire = .DropDowns("Zone combinée Destinataire").List(.DropDowns("Zone combinée Destinataire").ListIndex)
sJJ = .DropDowns("Zone combinée JJ").List(.DropDowns("Zone combinée JJ").ListIndex)
sMM = .DropDowns("Zone combinée MM").List(.DropDowns("Zone combinée MM").ListIndex)
sAAAA = .DropDowns("Zone combinée AAAA").List(.DropDowns("Zone combinée AAAA").ListIndex)
sObjet = .Range("D14")

End With
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' Récupération chrono
'

'
With Worksheets("Sauvegarde chronos")
derlig = .Range("H" & Rows.Count).End(xlUp).Row
If derlig <> 1 Then
'Numérochrono
.Range("H" & derlig + 1) = sNumérochrono
Else
'Numérochrono
.Range("H2") = sNumérochrono
End If
End With

With Worksheets("Choix")
'Numérochrono
Range("D16") = sNumérochrono
End With

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

With Worksheets("Sauvegarde chronos")
'pour la dernière ligne de la colonne A
derlig = .Range("A" & Rows.Count).End(xlUp).Row
If derlig <> 1 Then
'Redacteur
.Range("A" & derlig + 1) = sRedacteur
'Structure
.Range("B" & derlig + 1) = sStructure
'Destinataire
.Range("C" & derlig + 1) = sDestinataire
'JJ
.Range("D" & derlig + 1) = sJJ
'MM
.Range("E" & derlig + 1) = sMM
'AAAA
.Range("F" & derlig + 1) = sAAAA
'Objet
.Range("I" & derlig + 1) = sObjet
Else
'Redacteur
.Range("A2") = sRedacteur
'Structure
.Range("B2") = sStructure
'Destinataire
.Range("C2") = sDestinataire
'JJ
.Range("D2") = sJJ
'MM
.Range("E2") = sMM
'AAAA
.Range("F2") = sAAAA
'Objet
.Range("I2") = sObjet
End If
End With
End Sub

Quelqu'un peut-il éclairer ma lanterne svp?
Merci d'avance.
 

Pièces jointes

Re : Récupération donnée VBA

Bonjour Morris et bienvenu, bonjour le forum,

Peut-être comme ça :
Code:
    With Worksheets("Sauvegarde chronos")
        derlig = .Range("A" & Rows.Count).End(xlUp).Row
        If derlig <> 1 Then
          'Numérochrono
          sNumérochrono = .Range("H" & derlig)
        Else
          'Numérochrono
          sNumérochrono = .Range("H2")
        End If
    End With
 
Re : Récupération donnée VBA

C'est presque ça, avec ce code il me transfère l'avant dernier code généré mais pas le dernier

En fait le code est bon si on l'applique à une macro distincte de la première dont elle est issue. Le problème c'est qu'elle ne récupère pas suffisamment rapidement le dernier code généré reste sur le précédent. Suis je assez claire?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
499
Réponses
7
Affichages
657
Réponses
4
Affichages
572
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
716
Réponses
5
Affichages
558
Réponses
7
Affichages
212
Retour