• Initiateur de la discussion Initiateur de la discussion J.N
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
586
Réponses
26
Affichages
2 K
  • Question Question
Autres excel
Réponses
8
Affichages
849
  • Question Question
Réponses
1
Affichages
644
Réponses
1
Affichages
658
  • Question Question
Microsoft 365 onglets Excel
Réponses
9
Affichages
996
  • Question Question
Microsoft 365 Cpier/coller en VBA
Réponses
7
Affichages
729
Réponses
14
Affichages
877
Réponses
15
Affichages
2 K
Retour