Enregistrer les données d'un userform dans un classeur différent

Bonjour à tous, je vous sollicite car je ne trouve pas de réponse à mon problème sur le forum.

Je souhaiterais avoir 2 classeurs différents. Le premier contiendrait simplement le formulaire de saisie ainsi que la feuille provisoire afin de toujours pouvoir afficher le graphique.

Et le second servirait de base de données pour stocker les informations présentent dans les feuilles : "suivi", "semaine", "bilan semaines, "mois" et machine".

Les deux classeurs se trouveront dans des dossiers différents.

Merci de votre aide par avance.

PS : le mdp est 0109

Bonjour Sirol,

Tu trouveras une proposition en P.J.

Voici ce que j'ai fait :

  • j'ai créé le classeur "Données" avec uniquement les onglets demandés
  • j'ai supprimé les onglets "Données" du classeur "Formulaire"
  • Dans l'onglet "Parametres" du classeur formulaire, j'ai ajouté une cellule nommée rn G13 qui contient le nom complet du classeur "Données" et un bouton pour effectuer sa recherche :
image
  • J'ai aménagé le code de la procédure "RemplissageSuivi" pour remplir les ligne dans le classeur "Données".

En espérant avoir bien compris ta demande...

28sirol.zip (0.96 Mo)

Bonjour, merci de votre aide tout fonctionne comme je le souhaitais.

je ne l'avais pas précisé dans mon post mais est-il possible de faire ce remplissage sans que le classeur "trs-global-2021-données" ne s'ouvre ?

Je recherche des solutions en parallèle de mon coté.

Encore merci de votre aide.

Bonjour Sirol,

En P.J. une nouvelle proposition pour ne pas afficher le classeur 'Données'. Ce que j'ai aménagé :

  • Dans la procédure 'RemplissageSuivi' du classeur 'Formulaire' :
    • aménagement de l'ouverture du classeur "Données" :
    • Ajout de code lors de la fermeture du classeur :
      Private Sub Workbook_BeforeClose(Cancel As Boolean)
          'Si le classeur de données est ouvert, on le ferme
      
          Dim oWBData As Workbook
          Dim sWBDataName As String
          Dim Name() As String
      
          sWBDataName = ThisWorkbook.Names("ClasseurDonnees").RefersToRange.Value
      
          On Error Resume Next
          Set oWBData = Application.Workbooks(sWBDataName)
          If Not oWBData Is Nothing Then
              Name = Split(sWBDataName, "\")
              Windows(Name(UBound(Name()))).Visible = True
              oWBData.Close True
          End If
          On Error GoTo 0
      
          ActiveWorkbook.Saved = True
      End Sub
  • Classeur "Données" transformé en .xlsm pour ajouter le code suivant lors de son ouverture et fermeture :
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ActiveWorkbook.Save
    ActiveWorkbook.Saved = True
End Sub

Private Sub Workbook_Open()
    Dim sWBName As String
    Dim Name() As String

    sWBName = ThisWorkbook.Name
    Name = Split(sWBName, "\")
    Windows(Name(UBound(Name()))).Visible = True
End Sub
28sirol.zip (0.98 Mo)

Génial tout est parfait, merci infiniment de votre aide.

Bonne soirée et bonne continuation !!!

Rechercher des sujets similaires à "enregistrer donnees userform classeur different"