Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres Macro enregistrement userform (Résolue)

Justine56

XLDnaute Nouveau
Bonjour,

J'aurais besoin d'aide sur la création de ma macro. J'ai réussi à créer une macro me permettant d'enregistrer mes données de mon userform dans un autre classeur que j'ouvre et que je ferme.
Cependant, serait-il possible d'enregistrer les données sans ouvrir le classeur ?
L'intérêt d'enregistrer les données sans avoir à ouvrir le classeur Excel est de ne pas se retrouver en lecture seule et donc de pouvoir être à plusieurs à saisir le userform.

Voici ma macro :
VB:
'Procédure permettant d'enregistrer les données dans la base
Private Sub CommandButton_valider_Click()
Dim wbk As Workbook
Dim Sh As Worksheet
Dim fichierAutre As String
 
fichierAutre = "S:\Qualite\FNC interne\Retours & Problémes 2021.xlsm"
Application.ScreenUpdating = False
Set wbk = Workbooks.Open(fichierAutre)
Set Sh = wbk.Sheets("Base de donnée")
Sh.Range("A1").Select
Selection.End(xlDown).Select 'On se positionne sur la derniére ligne non vide
Selection.Offset(1, 0).Select 'permet de décaler d'une ligne vers le bas
ActiveCell = TextBox_date_création.Value
ActiveCell.Offset(0, 1).Value = ComboBox_service
ActiveCell.Offset(0, 2).Value = TextBox_nom_prénom_créateur
ActiveCell.Offset(0, 3).Value = CheckBox_fnc_interne_oui
ActiveCell.Offset(0, 7).Value = TextBox_numero_client
ActiveCell.Offset(0, 8).Value = TextBox_nom_client
ActiveCell.Offset(0, 9).Value = TextBox_numero_commande
ActiveCell.Offset(0, 10).Value = TextBox_numero_OF
ActiveCell.Offset(0, 11).Value = TextBox_numero_article
ActiveCell.Offset(0, 13).Value = TextBox_quantité_non_conforme
ActiveCell.Offset(0, 14).Value = TextBox_quantité_of
ActiveCell.Offset(0, 15).Value = TextBox_description
ActiveCell.Offset(0, 16).Value = CheckBox_visuel_recu_oui
ActiveCell.Offset(0, 17).Value = ComboBox_catégorisation
ActiveCell.Offset(0, 24).Value = ComboBox_responsable_actions
ActiveCell.Offset(0, 34).Value = CheckBox_refabrication_oui
ActiveCell.Offset(0, 39).Value = TextBox_temps_perdu_machine
ActiveCell.Offset(0, 40).Value = TextBox_temps_perdu_main_oeuvre
ActiveCell.Offset(0, 41).Value = TextBox_temps_perdu_matiere

MsgBox "Votre FNC a bien été enregistrée dans votre base de données", vbOKobnly + vbInformation, "CONFIRMATION"
  'ici en copie dans A1 de Feuil1 de AutreFichier la valeur de TextBox1
Set Sh = Nothing
wbk.Close True
Set wbk = Nothing

End Sub

Merci d'avance pour votre aide.

Justine
 
Dernière édition:
C

Compte Supprimé 979

Guest
Bonjour Justine56,

Enregistrer les données sans ouvrir le classeur est une fausse solution

En effet, rien ne pourra empêcher à un instant "T" que 2 utilisateurs lance l'enregistrement quasi en même temps.

Et qu'il soit ouvert ou non, l'accès au fichier sera bloqué par le 1er qui aura lancé son enregistrement à la fraction de seconde prêt.

Vous pouvez mettre le fichier "base" en mode partagé ou mieux à mes yeux serait alors d'alimenter une BdD Access, pas de problème multi-utilisateurs.

@+
 

Justine56

XLDnaute Nouveau
Bonjour,

Je vous remercie pour ce retour et en effet j'ai mis le fichier en "partagé" pour ne pas être embêtée.

Bonne journée.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…