Enregistrement dans un fichier excel

Résolu/Fermé
HDEUX - Modifié par pijaku le 23/08/2016 à 11:36
 HDEUX - 23 août 2016 à 11:15
Bonjour tout le monde je vous demande de m'aider
En fait je programme la création d'une facture en choisissant un élément de combobox qui récupère les prix à partir d'une base de données.

Puis je clique sur Ok pour enregistre cet élément et son prix
La problématique est que j'aimerai encore sélectionner autres éléments et les stocker dans la même feuille

L'enregistrement de premier élément commence dans la cellule A13, B13,C13 .....G13
lorsque je sélectionne le 2eme élément ,en cliquant sur OK, il doit être stocker dans A14,B14........G14
et ainsi de suite
j'ai tenté celui là mais ça marche pas à chaque fois il vérifie A13 et toujours il stocke dans A14 même d’elle contient une valeur...

        For i = 13 To m

            If DEVIS1.Cells(i, 1).Value = "" Then
                DEVIS1.Cells(i, 1).value = ComboBox3.Text
                DEVIS1.Cells(i, 4).value = TextBox2.Text
                DEVIS1.Cells(i, 3).value = Qtte

            Else
                DEVIS1.Cells(i + 1, 1).value = ComboBox3.Text
                DEVIS1.Cells(i + 1, 4).value = TextBox2.Text
                DEVIS1.Cells(i + 1, 3).value = Qtte
            End If

        Next
A voir également:

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
Modifié par pijaku le 16/08/2016 à 15:26
Bonjour,

Supposons qu'en A12 tu as saisi : "Produits" et que les lignes de ta facture doivent s'arrêter en A30, tu peux utiliser ceci :
Sub Enregistre()
Dim Lign As Integer
With Sheets("DEVIS1")
On Error Goto Fin
   Lign = .Range("A12:A30").Cells.Find("").Row 
On Error Goto 0
   .Cells(Lign, 1).value = ComboBox3.Text 
   .Cells(Lign, 4).value = TextBox2.Text 
   .Cells(Lign, 3).value = Qtte 

Fin:
MsgBox "Trop de lignes"
End Sub


Sinon, A lire
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
0
Bonjour je vous remercie infiniment, en fait j'ai pris plusieurs piste en profitant de lien que vous avez partagé, et j'ai arrivé à créer l'itération par le boucle until:

Dim i As Integer
        i = 13
        Do Until Devis1.Cells(i, 1).value = ""
            i = i + 1
        Loop
        Devis1.Cells(i, 1).value = ComboBox3.Text
        Devis1.Cells(i, 4).value =  TextBox2.Text
        Devis1.Cells(i, 3).value = Qtte
0