Excel

J

J.N

Guest
Bonjour a tous,

Voici mon pb, j'ais un classeur avec 3 feuilles

La 1er s'appele "Devis"
La 2éme "Base"
La 3éme "Client"

Déjà je voudrais que mon N° de Devis s'incremente automatiquement a chaque ouverture de ce classeur.

Ensuite dans la feuille Devis j'ais la cellule G14 ou se trouve le non du client.
La cellule G15 le code postale la cellule G16 le tel et la cellule G17 le Fax.

Je voudrais que a chaque fois que l on rentre des infos dans ces cellules ca les recopies automatiquement dans la feuille "CLIENT" et que pour chaque nouvelle entrées ca se recopie sur la ligne suivante de maniere a me faire une base de donnée "CLIENTS".

Je vous remercie d'avance de l'aide que vous pourrez m'apporter. A charge de revanche

J.N
 
O

omicron

Guest
Bonjour J.N.

Tu trouveras en pièce jointe un exemple qui après adaptation devrait répondre au problème posé.

Il intègre trois séquences de code :

=======================================================
Private Sub Workbook_Open()

'Range("Devis!G2") = Range("Devis!G2") + 1
Range("Devis!G15").ClearContents
Sheets("Devis").CommandButton1.Enabled = False

End Sub
=======================================================
Private Sub CommandButton1_Click()

Set Row = Sheets("Base").Range("RngBase").Cells(65536).End(xlUp).Offset(1).EntireRow
Row.Cells(1) = Range("G2").Value
Row.Cells(2) = Now
Row.Cells(3) = Range("G15").Value
Row.Cells(4) = Range("G16").Value
Row.Cells(5) = Range("G17").Value
Row.Cells(6) = Range("G18").Value

Range("G15:G18").ClearContents
CommandButton1.Enabled = False
Range("Devis!G2") = Range("Devis!G2") + 1
Sheets("Base").Activate

End Sub
=======================================================

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Range("G15"), Target) Is Nothing Then

Range("G16:G18").ClearContents
ClientExist = False
For Each Cel In Sheets("Clients").Range("RngClients").Columns("A").Cells
If Range("G15").Value = Cel.Value Then
ClientExist = True
Exit For
End If
Next Cel
If ClientExist Then
Range("G16").Value = Cel.Offset(0, 1)
Range("G17").Value = Cel.Offset(0, 2)
Range("G18").Value = Cel.Offset(0, 3)
CommandButton1.Enabled = True
Else
If Range("G15").Value <> "" Then _
MsgBox "Le client " & Range("G15").Value & " n'existe pas." & Chr(13) & _
"Veuillez le créer puis recommencer."
CommandButton1.Enabled = False
End If
End If

End Sub
=======================================================

Je pense que c'est suffisamment simple pour ce passer d'explications,
mais le cas échéant n'hésite pas à en demander.

NB. Je pense que l'usage d'une "UserForm" serait toutefois plus adapté à la saisie du devis.

Cordialement.

Omicron.
 

Pièces jointes

  • Devis.V1.zip
    19.2 KB · Affichages: 28

Discussions similaires

Réponses
3
Affichages
339
Réponses
8
Affichages
536
Réponses
1
Affichages
447

Statistiques des forums

Discussions
313 060
Messages
2 094 924
Membres
106 128
dernier inscrit
lopierre