Usf, n'ecrit pas su la bonne ligne
bonsoir le forum,
me suis fait un classeur pour gerer ma facturation et mes stocks
ca commence par un USF qui sert d'accueil
je choisis "nouvelle facture", nouvel usf
je remplis l'usf, il me remet tout ca sur la feuille "facture"
ensuite j'ai un bouton "valider" qui a plusieurs fonctions :
... enregistre la facture au format pdf => ok
... enregistre les infos ds une page "listefactures" => ok
... copie les quantites ds la feuille "stocks" => pas ok
dans cette feuille une colonne = un produit
si la ligne est une vente alors la valeur est negative
si c'est achat elle est positive
le pb c'est que lorsque je clique sur "valider" tout est copie mais pas a la bonne place, ca rempli les cases du dessus qui sont vides plutot que de mettre tut sur la meme ligne
je vous mets mon fichier pour que vous puissiez voir exactement de quoi il en retourne
si vous voulez apporter qques critiques, n'hesitez pas
Bonsoir,
Déjà, au premier coup d'oeil, quand tu utilise le mot "With" c'est pour éviter de devoir répéter la partie après With (dans l'exemple qui suit, "Sheets("Facture")"), et pour indiquer au compilateur que les lignes de code qui suivent concernent ce qui suit With, tu dois faire précéder d'un point comme ceci ".Range("b8").Value" pour dire que ça fait référence à "Sheets("Facture")" , exemple avec le code ci-dessous que j'ai un peu modifié :
Private Sub valid_Click() 'bouton "Valider"
Dim I As Integer
' tout va etre coller ds le feuille "Facture"
' on ouvre un with pour pas repeter "sheets("Facture")" sur chaque ligne
'Oui, mais dans ce cas, il faut indiquer au compilateur
'l'objet de référence par un point devant
With Sheets("Facture")
.Range("b8").Value = numclt.Value 'numero client
.Range("b11").Value = siret.Value 'siret
.Range("b12").Value = tva.Value 'n° tva
.Range("b13").Value = tel1.Value 'telephone 1
.Range("b14").Value = tel2.Value 'telephone 2
.Range("b15").Value = mail.Value 'mail
.Range("c49").Value = numchq.Value 'N° cheque
.Range("d12").Value = nomclt.Value 'copie du Nom
.Range("d13").Value = adresse.Value 'adresse
.Range("d14").Value = cp.Value 'code postal
.Range("e14").Value = ville.Value 'ville
For I = 1 To 20
'on colle les produits ds leur ligne respective sur la facture
.Range("B" & I + 18).Value = Me.Controls("prod" & I).Value
'on colle les qttes
.Range("F" & I + 18).Value = Me.Controls("qt" & I).Value
Next I
End With 'on ferme le with
Unload Me ' on ferme le userform
End SubJe regarde demain et te dirai.
Hervé.
n'hesites pas a critiquer surtout
voila au moins 15 jours que je suis sur ce classeur et ce sont mes premiers pas en vba
doit y avoir de quoi dire lol
Bonjour,
Dans le module de la feuille "Facture"
Private Sub CommandButton2_Click()
...
'Corriger cette section comme suit :
' report des marchandises facturees
For I = 19 To 37
Select Case Sheets("Facture").Cells(I, 2).Value
Case Is = Sheets("Stocks").Range("D2").Value
Sheets("Stocks").Cells(SLigne, 4) = 0 - Sheets("Facture").Cells(I, 6).Value
Case Is = Sheets("Stocks").Range("E2").Value
Sheets("Stocks").Cells(SLigne, 5) = 0 - Sheets("Facture").Cells(I, 6).Value
Case Is = Sheets("Stocks").Range("F2").Value
Sheets("Stocks").Cells(SLigne, 6) = 0 - Sheets("Facture").Cells(I, 6).Value
Case Is = Sheets("Stocks").Range("G2").Value
Sheets("Stocks").Cells(SLigne, 7) = 0 - Sheets("Facture").Cells(I, 6).Value
Case Is = Sheets("Stocks").Range("H2").Value
Sheets("Stocks").Cells(SLigne, 8) = 0 - Sheets("Facture").Cells(I, 6).Value
End Select
Next
...A+
impec ca marche
merci
j'attends le retour de theze avant de passer le post en resolu