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

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

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
292
Réponses
12
Affichages
635