Worksheets("").Activate

JNO187 Messages postés 26 Statut Membre -  
JNO187 Messages postés 26 Statut Membre -
Bonjour à tous,

Voici en quelques mots mon problème
Pour des besoins perso, j'ai télécharger une base de données sur internet, mais cette base de données ne correspondait pas tout à fait à mes attentes, et j'ai voulu rajouter 2 onglets "société" et "fax" j'ai réussi à créer les boutons mais plus rien ne fonctionne dorénavant, lorsque je veux créer un contact, j'ai à chaque fois un nouveau message d'erreurs, vous l'aurez sans doute compris je ne comprends rien aux macros, VBA et autres...
Et là j'aurais besoin d'un petit coup de main SVP.

Voici ce qui apparaît :

Private Sub cmdAjouter_Click()
Dim numLigneVide As Integer
'On active la feuille "Liste"
Worksheets("").Activate
'On trouve la dernière ligne vide du tableau et on enregistre le numéro de la ligne dans la variable numLigneVide
numLigneVide = ActiveSheet.Columns(1).Find("").Row
'On vérifie que les champs obligatoires sont correctement remplis
If txtNom.Text = "" Then
MsgBox "Veuillez remplir le nom de votre contact", vbCritical, "Champs manquant"
txtNom.SetFocus
ElseIf txtPrenom.Text = "" Then
MsgBox "Veuillez remplir le prénom de votre contact", vbCritical, "Champs manquant"
txtPrenom.SetFocus
Else
'On remplit les données dans notre tableau
ActiveSheet.Cells(numLigneVide, 1) = UCase(txtSociete.Text)
ActiveSheet.Cells(numLigneVide, 2) = txtNom.Text
ActiveSheet.Cells(numLigneVide, 3) = txtPrenom.Text
ActiveSheet.Cells(numLigneVide, 4) = txtAdresse.Text
ActiveSheet.Cells(numLigneVide, 5) = txtCP.Text
ActiveSheet.Cells(numLigneVide, 6) = txtVille.Text
ActiveSheet.Cells(numLigneVide, 7) = txtEmail.Text
ActiveSheet.Cells(numLigneVide, 8) = txtTelFixe.Text
ActiveSheet.Cells(numLigneVide, 9) = txtFax.Text
ActiveSheet.Cells(numLigneVide, 10) = txtTelPortable.Text
'On efface le formulaire et on replace le curseur sur le premier champs (Nom)
txtSociete.Text = ""
txtNom.Text = ""
txtPrenom.Text = ""
txtAdresse.Text = ""
txtCP.Text = ""
txtVille.Text = ""
txtEmail.Text = ""
txtTelFixe.Text = ""
txtTelFax.Text = ""
txtTelPortable.Text = ""
txtNom.SetFocus
End If
End Sub

Private Sub cmdFermer_Click()
frmNouveau.Hide
End Sub

Private Sub lblAdresse_Click()

End Sub

10 réponses

  1. Morgothal Messages postés 1350 Statut Membre 184
     
    Bonjour,
    Ceci me semble suspect :
    'On active la feuille "Liste"
    Worksheets("").Activate 
    

    Essaye de le remplacer par
    'On active la feuille "Liste"
    Worksheets("Liste").Activate  
     
    Si la feuille "Liste" existe bien sûr.

    A+ !
    0
  2. JNO187 Messages postés 26 Statut Membre 1
     
    Salut

    Merci pour ton aide à priori cela à l'air de fonctionner, mais maintenant j'ai cette ligne en gras qui apparaît en jaune:

    Private Sub cmdAjouter_Click()
    Dim numLigneVide As Integer
    'On active la feuille "Liste"
    Worksheets("Liste").Activate
    'On trouve la dernière ligne vide du tableau et on enregistre le numéro de la ligne dans la variable numLigneVide
    numLigneVide = ActiveSheet.Columns(1).Find("").Row
    'On vérifie que les champs obligatoires sont correctement remplis
    If txtNom.Text = "" Then
    MsgBox "Veuillez remplir le nom de votre contact", vbCritical, "Champs manquant"
    txtNom.SetFocus
    ElseIf txtPrenom.Text = "" Then
    MsgBox "Veuillez remplir le prénom de votre contact", vbCritical, "Champs manquant"
    txtPrenom.SetFocus
    Else
    'On remplit les données dans notre tableau
    ActiveSheet.Cells(numLigneVide, 1) = UCase(txtSociete.Text)
    ActiveSheet.Cells(numLigneVide, 2) = txtNom.Text
    ActiveSheet.Cells(numLigneVide, 3) = txtPrenom.Text
    ActiveSheet.Cells(numLigneVide, 4) = txtAdresse.Text
    ActiveSheet.Cells(numLigneVide, 5) = txtCP.Text
    ActiveSheet.Cells(numLigneVide, 6) = txtVille.Text
    ActiveSheet.Cells(numLigneVide, 7) = txtEmail.Text
    ActiveSheet.Cells(numLigneVide, 8) = txtTelFixe.Text
    ActiveSheet.Cells(numLigneVide, 9) = txtFax.Text
    ActiveSheet.Cells(numLigneVide, 10) = txtTelPortable.Text
    'On efface le formulaire et on replace le curseur sur le premier champs (Nom)
    txtSociete.Text = ""
    txtNom.Text = ""
    txtPrenom.Text = ""
    txtAdresse.Text = ""
    txtCP.Text = ""
    txtVille.Text = ""
    txtEmail.Text = ""
    txtTelFixe.Text = ""
    txtTelFax.Text = ""
    txtTelPortable.Text = ""
    txtNom.SetFocus
    End If
    End Sub
    0
    1. Morgothal Messages postés 1350 Statut Membre 184
       
      Re,
      Essaye de corriger cette ligne :
      'On trouve la dernière ligne vide du tableau et on enregistre le numéro de la ligne dans la variable numLigneVide
      numLigneVide = ActiveSheet.Columns(1).Find("").Row 


      Par celle-ci :
      'On trouve la dernière ligne vide du tableau et on enregistre le numéro de la ligne dans la variable numLigneVide
      numLigneVide = ActiveSheet.Range("A65536").End(xlUp).Row
      0
  3. JNO187 Messages postés 26 Statut Membre 1
     
    RE

    Je viens de tenter mais nouvelle ligne en jaune (gras) :

    Private Sub cmdAjouter_Click()
    Dim numLigneVide As Integer
    'On active la feuille "Liste"
    Worksheets("Liste").Activate
    'On trouve la dernière ligne vide du tableau et on enregistre le numéro de la ligne dans la variable numLigneVide
    numLigneVide = ActiveSheet.Range("A65536").End(xlUp).Row
    'On vérifie que les champs obligatoires sont correctement remplis
    If txtSociete.Text = "" Then
    MsgBox "Veuillez remplir le nom de votre Societe", vbCritical, "Champs manquant"
    txtSociete.SetFocus
    ElseIf txtNom.Text = "" Then
    MsgBox "Veuillez remplir le nom de votre contact", vbCritical, "Champs manquant"
    txtNom.SetFocus
    ElseIf txtPrenom.Text = "" Then
    MsgBox "Veuillez remplir le prénom de votre contact", vbCritical, "Champs manquant"
    txtPrenom.SetFocus
    Else
    'On remplit les données dans notre tableau
    ActiveSheet.Cells(numLigneVide, 1) = UCase(txtSociete.Text)
    ActiveSheet.Cells(numLigneVide, 2) = txtNom.Text
    ActiveSheet.Cells(numLigneVide, 3) = txtPrenom.Text
    ActiveSheet.Cells(numLigneVide, 4) = txtAdresse.Text
    ActiveSheet.Cells(numLigneVide, 5) = txtCP.Text
    ActiveSheet.Cells(numLigneVide, 6) = txtVille.Text
    ActiveSheet.Cells(numLigneVide, 7) = txtEmail.Text
    ActiveSheet.Cells(numLigneVide, 8) = txtTelFixe.Text
    ActiveSheet.Cells(numLigneVide, 9) = txtFax.Text
    ActiveSheet.Cells(numLigneVide, 10) = txtTelPortable.Text
    'On efface le formulaire et on replace le curseur sur le premier champs (Societe)
    txtSociete.Text = ""
    txtNom.Text = ""
    txtPrenom.Text = ""
    txtAdresse.Text = ""
    txtCP.Text = ""
    txtVille.Text = ""
    txtEmail.Text = ""
    txtTelFixe.Text = ""
    txtTelFax.Text = ""
    txtTelPortable.Text = ""
    txtNom.SetFocus
    End If
    End Sub
    0
    1. Morgothal Messages postés 1350 Statut Membre 184
       
      Salut
      Il faudrait verifier les noms des objets sur le userform...
      0
  4. JNO187 Messages postés 26 Statut Membre 1
     
    Re

    Encore une fois tu as raison, tout à l'air de quasi fonctionner, mis a part la commande fermer cf ligne en gras, à vrai HIDE n'ai pas proposé :

    Private Sub TextBox1_Change()

    End Sub

    Private Sub cmdAjouter_Click()
    Dim numLigneVide As Integer
    'On active la feuille "Feuil1"
    Worksheets("Feuil1").Activate
    'On trouve la dernière ligne vide du tableau et on enregistre le numéro de la ligne dans la variable numLigneVide
    numLigneVide = ActiveSheet.Range("A65536").End(xlUp).Row
    'On vérifie que les champs obligatoires sont correctement remplis
    If txtSociete.Text = "" Then
    MsgBox "Veuillez remplir le nom de votre Societe", vbCritical, "Champs manquant"
    txtSociete.SetFocus
    ElseIf txtNom.Text = "" Then
    MsgBox "Veuillez remplir le nom de votre contact", vbCritical, "Champs manquant"
    txtNom.SetFocus
    Else
    'On remplit les données dans notre tableau
    ActiveSheet.Cells(numLigneVide, 1) = UCase(txtSociete.Text)
    ActiveSheet.Cells(numLigneVide, 2) = txtNom.Text
    ActiveSheet.Cells(numLigneVide, 3) = txtPrenom.Text
    ActiveSheet.Cells(numLigneVide, 4) = txtAdresse.Text
    ActiveSheet.Cells(numLigneVide, 5) = txtCP.Text
    ActiveSheet.Cells(numLigneVide, 6) = txtVille.Text
    ActiveSheet.Cells(numLigneVide, 7) = txtEmail.Text
    ActiveSheet.Cells(numLigneVide, 8) = txtTelFixe.Text
    ActiveSheet.Cells(numLigneVide, 9) = txtFax.Text
    ActiveSheet.Cells(numLigneVide, 10) = txtTelPortable.Text
    'On efface le formulaire et on replace le curseur sur le premier champs (Societe)
    txtSociete.Text = ""
    txtNom.Text = ""
    txtPrenom.Text = ""
    txtAdresse.Text = ""
    txtCP.Text = ""
    txtVille.Text = ""
    txtEmail.Text = ""
    txtTelFixe.Text = ""
    txtFax.Text = ""
    txtTelPortable.Text = ""
    txtSociete.SetFocus
    End If
    End Sub

    Private Sub cmdFermer_Click()
    frmNouveau.Hide
    End Sub

    Private Sub txtCp_Change()

    End Sub

    Private Sub txtTelfixe_Change()

    End Sub

    Private Sub txtTelPortable_Change()

    End Sub
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Morgothal Messages postés 1350 Statut Membre 184
     
    Re,
    Je dirais de verifier le nom du userform, Hide est bien la propriete pour le masquer.
    0
  7. JNO187 Messages postés 26 Statut Membre 1
     
    re

    Non le nom est bon
    0
  8. JNO187 Messages postés 26 Statut Membre 1
     
    HEU en faite tu avais raison mon userform portait également le nom Nouveau, il y à sans doute eu un conflit, mais bon mon problème est résolu.

    Un très grand merci pour ton aide !
    0
  9. JNO187 Messages postés 26 Statut Membre 1
     
    J'ai parlé trop vite lorsque je remplis mes champs, comme societe ville etc...
    Ce sont les nouvelles informations que je rentre qui s'affiche.
    0
  10. JNO187 Messages postés 26 Statut Membre 1
     
    Quelqu'un pour m'aider SVP ? car toujours pas réussi depuis le temps !
    0