Copie des informations de userform

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

  • menu.xlsm
    88.8 KB · Affichages: 51
  • intervention.xlsx
    15 KB · Affichages: 42
  • menu.xlsm
    88.8 KB · Affichages: 57
  • intervention.xlsx
    15 KB · Affichages: 40
  • menu.xlsm
    88.8 KB · Affichages: 54
  • intervention.xlsx
    15 KB · Affichages: 45
C

Compte Supprimé 979

Guest
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+
 

Robert

XLDnaute Barbatruc
Repose en paix
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é
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG