FORMULAIRE VBA

Résolu
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. Modérateur
    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. 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. 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
    3. Modérateur
      @mohjatr

      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
    4. Merci beaucoup !
      0
    5. 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