Copie des informations de userform

  • Initiateur de la discussion Initiateur de la discussion ifi77
  • 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 !

ifi77

XLDnaute Occasionnel
Bonjour,

Pour l'avoir fait de nombreuses fois sans probleme je ne comprends pas pourquoi excel ne veut pas reporter les informations contenues sur le userform1 sur le classeur annexe intervention.

Si quelqu'un peut m'aider

merci
 

Pièces jointes

Re : Copie des informations de userform

Bonsoir Ifi77

Il y a 2 problèmes dans le code de ton UserForm1

1) Tu mets un
Code:
On Error Resume Next
Sans arrêter le détournement d'erreur par
Code:
On Error Goto 0

2) Tu défini la variable "Annee" comme Integer
ce qui fait que lorsque tu mets l'intruction
Code:
Sheets(Annee)
En fait tu inscris les valeur sur la 2012ème feuille et non la feuille "2012"

Le code correcte est le suivant 😉
Code:
Private Sub CommandButton2_Click()  Dim Annee As String, n As Integer
  Dim Wbk As Workbook


  If TextBox1.Value = "" Then
    MsgBox "Vous devez renseigner la date", vbExclamation, "Erreur"
    Exit Sub
  End If
  If ComboBox1.Value = "" Then
    MsgBox "Vous devez renseigner le motif", vbExclamation, "Erreur"
    Exit Sub
  End If
  If TextBox2.Value = "" Then
    MsgBox "Vous devez renseigner l'heure de départ", vbExclamation, "Erreur"
    Exit Sub
  End If
  If TextBox5.Value = "" Then
    MsgBox "Vous devez renseigner l'heure de rentrée", vbExclamation, "Erreur"
    Exit Sub
  End If
  If TextBox4.Value = "" Then
    MsgBox "Vous devez renseigner l'adresse", vbExclamation, "Erreur"
    Exit Sub
  End If
  If TextBox6.Value = "" Then
    MsgBox "Vous devez renseigner le secteur", vbExclamation, "Erreur"
    Exit Sub
  End If
  If TextBox15.Value = "" Then
    MsgBox "Vous devez renseigner le secteur", vbExclamation, "Erreur"
    Exit Sub
  End If


  Dim rep As Integer
  rep = MsgBox("Confirmer vous l'enregistrement?", vbYesNo + vbQuestion, "Confirmation")
  If rep = vbYes Then


    Annee = Year(TextBox1)
    Chemin = ThisWorkbook.Path & "\"


    On Error Resume Next
    Set Wbk = Workbooks("intervention.xlsx")
    Wbk.Activate
    If Err <> 0 Then
      Workbooks.Open Chemin & "intervention.xlsx", Password:="1234", WriteResPassword:="1234"
    End If
    On Error GoTo 0
    
    With Wbk.Sheets(Annee)
      n = Range("A" & Rows.Count).End(xlUp).Row + 1
      .Cells(n, 1).Value = TextBox1.Value
      .Cells(n, 2).Value = TextBox2.Value
      .Cells(n, 3).Value = TextBox5.Value
      .Cells(n, 5).Value = TextBox4.Value
      .Cells(n, 6).Value = TextBox6.Value
      .Cells(n, 7).Value = ComboBox1.Value
      .Cells(n, 8).Value = TextBox15.Value
      .Cells(n, 9).Value = TextBox10.Value
      .Cells(n, 10).Value = TextBox11.Value
      .Cells(n, 11).Value = TextBox12.Value
      .Cells(n, 12).Value = TextBox13.Value
      .Cells(n, 13).Value = TextBox14.Value
      .Cells(n, 14).Value = TextBox7.Value
      .Cells(n, 15).Value = TextBox8.Value
      .Cells(n, 16).Value = TextBox9.Value
    End With


    MsgBox "Enregistrement effectué", vbInformation, "Information"


  Else: Exit Sub
  End If
End Sub

A+
 
Re : Copie des informations de userform

Bonsoir Ifi, bonsoir le forum,

Essaie comme ça :
Code:
Private Sub CommandButton2_Click()
Dim annee As String 'déclare la variable annee
Dim n As Integer
Dim cc As Workbook 'déclare la variable cc (Classeur Cible)
Dim rep As Integer
Dim o As Objec 'déclare la variable o (Onglet)

If TextBox1.Value = "" Then
    MsgBox "Vous devez renseigner la date", vbExclamation, "Erreur"
    Exit Sub
End If
If ComboBox1.Value = "" Then
    MsgBox "Vous devez renseigner le motif", vbExclamation, "Erreur"
    Exit Sub
End If
If TextBox2.Value = "" Then
    MsgBox "Vous devez renseigner l'heure de départ", vbExclamation, "Erreur"
    Exit Sub
End If
If TextBox5.Value = "" Then
    MsgBox "Vous devez renseigner l'heure de rentrée", vbExclamation, "Erreur"
    Exit Sub
End If
If TextBox4.Value = "" Then
    MsgBox "Vous devez renseigner l'adresse", vbExclamation, "Erreur"
    Exit Sub
End If
If TextBox6.Value = "" Then
    MsgBox "Vous devez renseigner le secteur", vbExclamation, "Erreur"
    Exit Sub
End If
If TextBox15.Value = "" Then
    MsgBox "Vous devez renseigner le secteur", vbExclamation, "Erreur"
    Exit Sub
End If
rep = MsgBox("Confirmer vous l'enregistrement?", vbYesNo + vbQuestion, "Confirmation")
If rep = vbYes Then
    annee = CStr(Year(TextBox1)) 'définit la variable annee
    chemin = ThisWorkbook.Path & "/"
    
    On Error Resume Next
    Workbooks("intervention.xlsx").Activate
    If Err <> 0 Then
        Workbooks.Open (chemin & "intervention.xlsx"), Password:="1234", WriteResPassword:="1234"
    End If
    On Error GoTo 0'annulke la gestion des erreurs
    Set cc = Workbooks("intervention.xlsx") 'définit le classeur cible
    cc.Activate 'active le classeur cible
    Set o = cc.Sheets(annee) 'définit l'onglet o
    o.Activate 'active l'onglet o
    With o 'prend en compte l'onglet o
        n = Range("A" & Rows.Count).End(xlUp).Row + 1
        .Cells(n, 1).Value = TextBox1.Value
        .Cells(n, 2).Value = TextBox2.Value
        .Cells(n, 3).Value = TextBox5.Value
        .Cells(n, 5).Value = TextBox4.Value
        .Cells(n, 6).Value = TextBox6.Value
        .Cells(n, 7).Value = ComboBox1.Value
        .Cells(n, 8).Value = TextBox15.Value
        .Cells(n, 9).Value = TextBox10.Value
        .Cells(n, 10).Value = TextBox11.Value
        .Cells(n, 11).Value = TextBox12.Value
        .Cells(n, 12).Value = TextBox13.Value
        .Cells(n, 13).Value = TextBox14.Value
        .Cells(n, 14).Value = TextBox7.Value
        .Cells(n, 15).Value = TextBox8.Value
        .Cells(n, 16).Value = TextBox9.Value
    End With
    MsgBox "Enregistrement effectué", vbInformation, "Information"
End If
Unload Me
End Sub

Une variable annee qui s'est transformée ensuite en année. Un On Error Resume Next sans On Error Goto 0. Voilà l'explication...

p.s Quand tu mets un fichier avec mot de passe, pense à fournir le mot de passe, gros malin !

[Édition]
Bonsoir Bruno on s'est croisé
 
- 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

  • Question Question
Microsoft 365 problème d'index
Réponses
19
Affichages
498
  • Question Question
XL 2019 User Form
Réponses
9
Affichages
526
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
522
Réponses
2
Affichages
419
Retour