FORMULAIRE VBA

Résolu
mohjatr Messages postés 15 Statut Membre -  
mohjatr Messages postés 15 Statut Membre -
Bonjour,

Je n'arrive pas à insérer des données entrées dans un formulaire, que j'ai créé sur vba, à la suite de données existantes sur une même feuille de calcul.

J'ai l'impression d'être obligée de donnée une cellule précise où insérer les données alors que je voudrais que les données s'insèrent juste à la suite.

Merci d'avance pour votre aide

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Sans voir ton code .... difficile de te répondre.....

    Mais je pense que tu n'as pas pensé à dérterminer le numéro de la dernière ligne non vide de ton tableau... pour ajouter à la suite .. les nouvelles valeurs...

    Donc :
    'trouver la dernière ligne du tableau
    dernLigne = Range("A" & Rows.Count).End(xlUp).Row
    
    'Ajout à la suite
    Cells(dernLigne+1 , 1).value = "nouvelle valeur"
    
    
    

    0
    1. mohjatr Messages postés 15 Statut Membre
       
      Bonjour Jordane

      J'ai un code un peu bizarre que j'ai essayé de récupérer en ligne :

      Private Sub Editer_Click()
      
      
      Do While fichier
      If Sheets(1).Cells(i, 1) <> "" Then
      i = 1
      Else
      Sheets(1).Cells(i, 1) = Fiche_Client.Nom.Value
      Sheets(1).Cells(i, 2) = Fiche_Client.Prénom.Value
      Sheets(1).Cells(i, 3) = Fiche_Client.Téléphone.Value
      Sheets(1).Cells(i, 4) = Fiche_Client.Adresse.Value
      Sheets(1).Cells(i, 5) = Fiche_Client.Ville.Value
      Sheets(1).Cells(i, 6) = Fiche_Client.Code_Postal.Value
      i = i + 1
      synthese.Sheets(1).Range ("C" & i & ":H" & i)
      Workbooks(fichier).Close
      End If
      Loop
      
      End Sub
      


      EDIT : Ajout des balises de code
      0
    2. mohjatr Messages postés 15 Statut Membre
       
      Finalement merci Jordane j'ai refait le code à partir de la base que tu m'as donnée :
      Private Sub Editer_Click()

      'trouver la dernière ligne du tableau
      dernLigne = Range("C" & Rows.Count).End(xlUp).Row

      'Ajout à la suite
      Cells(dernLigne + 1, 1).Value = Fiche_Client.Nom.Value
      Cells(dernLigne + 1, 2).Value = Fiche_Client.Prénom.Value
      Cells(dernLigne + 1, 3).Value = Fiche_Client.Téléphone.Value
      Cells(dernLigne + 1, 4).Value = Fiche_Client.Adresse.Value
      Cells(dernLigne + 1, 5).Value = Fiche_Client.Ville.Value
      Cells(dernLigne + 1, 6).Value = Fiche_Client.Code_Postal.Value

      End Sub

      Ca marche, mais je voudrais décaler les cellules pour qu'elle s'insèrent à la suite mais en colonne C, pas A. Aussi je voudrais que le formulaire disparaisse a la fin de la saisie.

      Merci d'avance

      Cordialement

      Mohja
      0
      1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > mohjatr Messages postés 15 Statut Membre
         

        je voudrais décaler les cellules pour qu'elle s'insèrent à la suite mais en colonne C, pas A

        Il te suffit de modifier le second argument de Cells(ligne,colonne)
        Cells(dernLigne + 1, 3).Value = Fiche_Client.Nom.Value 
        Cells(dernLigne + 1, 4).Value = Fiche_Client.Prénom.Value 
        'etc....
        



        . Aussi je voudrais que le formulaire disparaisse a la fin de la saisie.

        userform1.hide
        




        PS: A l'avenir... merci d'utiliser les balises de code !
        => https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
        0
    3. mohjatr Messages postés 15 Statut Membre
       
      Merci beaucoup !
      0
    4. mohjatr Messages postés 15 Statut Membre
       
      Rebonjour

      Je voudrais, à partir d'un deuxième formulaire, avoir une liste déroulante qui me permettrais de selectionner un nom dans les noms de la colonne C, puis charger les cellules remplies pour les modifier et en cliquant sur valider je pourrais corriger la ligne en question.

      Est ce que vous sauriez comment faire ?

      Merci d'avance

      Cordialement
      0