enregistrement de données

  • Initiateur de la discussion Initiateur de la discussion Microbe
  • 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 !

M

Microbe

Guest
Bonjour,

Est t'il possible de créer un genre d'historique?, à savoir dans mon classeur il y a plusieurs feuilles; Bon de commande, Bon de livraison, Facture, Note de crédit, Facture corrigée et Historique.
Je voudrais que a chaque fois que j'enregistre un nouveau BC ou facture etc, Certaines donnée aille s'enregistré également sur la feuille historique.

Formule, Vba?

A savoir que je ne veux pas a avoir a cliqué sur un bouton de commande, je veux que ca ce fasse quand j'utilise la fonction sauvegarde d'excel.

Merci d'avance
 
Re : enregistrement de données

Tout cela fonctionne, pas de soucis. Le problème maintenant viens dans la suite de ma procédure :'(
En gros j'ai ajouter une colonne "Indication de paiement reçu" sur la feuille histo et je doit faire en sorte que si je met Oui dans cette case, on fait rien, mais si je met non toutes la ligne doit aller ce copier dans un autre classeur ...
 
Re : enregistrement de données

En résumé, lorsque dans l'historique à l'indication de paiement on met oui ou rien, on fait rien, si on met non, il faudrais que toute la ligne ou il y a ce NON ce copie dans l'autre classeur (C:\Users\Dims portable\Desktop\Compta).

Jai mis grâce a vos conseil un exemple simple en pj ;-)
 

Pièces jointes

Re : enregistrement de données

oui tu a raison, faut que je pense a mettre en xls, c'est pcq suis en excel 2010.
Non les 2 classeurs ne seront pas forcement ouvert en même temps car sur le projet final il ne seront pas sur le même ordi mais sur 2 ordi différents en réseau.

L'idéal serait de recopier avec le format.
 
Dernière modification par un modérateur:
Re : enregistrement de données

Personne n'a une idée pour effectuer ce genre de copie de doc ?

En résumé,J'ai un classeur ou il y a les feuilles BC, BL, Facture, Historique, etc... lorsque dans l'historique à l'indication de paiement on met oui ou rien, on fait rien, si on met non, il faudrais que toute la ligne ou il y a ce NON ce copie dans l'autre classeur (C:\Users\Dims portable\Desktop\Compta).

Je précise bien que les 2 classeurs ne seront pas forcement ouvert en même temps car pour mon projet final les 2 classeurs seront sur des postes différents mais sur le même réseau.
 
Re : enregistrement de données

Bonjour,

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim monclasseur As String, chemin As String, maligne As Integer

If Not Intersect(Range("E1:E10"), Target) Is Nothing Then ' modifer suivant la plage requise
monclasseur = "Classeur2" ' nom du classeur de destination
chemin = ThisWorkbook.Path & "\" ' chemin ou se trouve le fichier pour toi C:\Users\Dims portable\Desktop\Compta
    If UCase(Target.Value) = "NON" Then
        On Error Resume Next ' en cas d'erreur passe a la ligne suivante
        Workbooks.Open (chemin & monclasseur & ".xls") ' ouvre le fichier
        On Error GoTo 0
        maligne = Workbooks(monclasseur & ".xls").Sheets(1).Range("A65536").End(xlUp).Row ' derniere ligne non vide
        ThisWorkbook.Sheets("histo").Rows(Target.Row & ":" & Target.Row).Copy
        Workbooks(monclasseur & ".xls").Activate
        Workbooks(monclasseur & ".xls").Sheets(1).Select
        Workbooks(monclasseur & ".xls").Sheets(1).Range("A" & maligne + 1).Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Workbooks(monclasseur & ".xls").Save
    End If
End If

End Sub

plus qu'a modifier suivant tes besoins procedure a mettre dans le code de la feuille concernée ("histo")
 
Re : enregistrement de données

Bonjour à tous,
Novice en programmation donc en VBA, j'ai créé un formulaire de saisie avec USF qui ne marche pas.
Après toute une journée de recherche sur le forum, je me permets de vous soumettre mon pb.
1/ Je souhaite que mes données saisies ne soient enregistrées qu'après l'action du bouton validation. Ce qui ne pose pas de pb ;
2/ Je veux que mes enregistrements soient sur la 1ère ligne de ma base de données. C'est là que ça coince. J'arrive bien à insérer une ligne mais l'enregistrement ne se fait pas à la ligne souhaitée;

Pour être efficace, j'ai joint mon document pour correction

Merci.
 

Pièces jointes

Re : enregistrement de données

Bonjour Didier et bienvenu, bonjour le forum,

Étrange que tu n'aies pas créé une nouveau fil de discussion au lieu de déterrer ce vieux fil de 2011...
J'ai regardé ton problème et je ne comprends pas pourquoi tu commentes les lignes :

Code:
'Rows("2:2").Select
'Selection.Insert SHIFT:=xlDown, copyorigin:=xlfromatfromleftorAbove
alors qu'elles devraient faire partie du code...
Mais surtout pourquoi tu utilises un variable Newline qui utilise la dernière ligne de la colonne A
Code:
NewLine = .Range("A" & .Rows.Count).End(xlUp)(-3).Row
ce qui renvoie la ligne 4 dans ton exemple. Alors que tu veux toujours utiliser la ligne 3.
Il te suffit de remplacer Newline par 3.
Modifie ton code de la sorte :
Code:
Private Sub CommandButton2_Click()
Rows("2:2").Select
Selection.Insert SHIFT:=xlDown, copyorigin:=xlfromatfromleftorAbove
With Sheets("BD")
    .Cells(3, 1) = TextBox1
    .Cells(3, 2) = TextBox2
    .Cells(3, 3) = TextBox3
    .Cells(3, 4) = TextBox4
    .Cells(3, 5) = TextBox5
    .Cells(3, 6) = TextBox6
    .Cells(3, 7) = TextBox7
    .Cells(3, 8) = TextBox8
    .Cells(3, 9) = ListBox1
    .Cells(3, 10) = TextBox10
    .Cells(3, 11) = TextBox11
    .Cells(3, 12) = TextBox12
    .Cells(3, 13) = TextBox13
    .Cells(3, 14) = TextBox14
    .Cells(3, 15) = TextBox15
    .Cells(3, 16) = TextBox16
    .Cells(3, 17) = TextBox17
    .Cells(3, 18) = TextBox18
    .Cells(3, 19) = TextBox19
    .Cells(3, 20) = ListBox2
    .Cells(3, 21) = TextBox35
    .Cells(3, 22) = TextBox36
    .Cells(3, 23) = TextBox31
    .Cells(3, 24) = TextBox32
    .Cells(3, 25) = ListBox10
    .Cells(3, 26) = TextBox37
    .Cells(3, 27) = TextBox38
    .Cells(3, 28) = ComboBox1
    .Cells(3, 29) = ComboBox2
    .Cells(3, 30) = ComboBox3
    .Cells(3, 31) = ListBox7
    .Cells(3, 32) = ListBox8
    .Cells(3, 33) = ListBox9
    .Cells(3, 34) = TextBox26
    .Cells(3, 35) = TextBox30
    .Cells(3, 36) = ListBox11
    .Cells(3, 37) = ListBox12
    .Cells(3, 38) = TextBox29
End With
Unload FORMULAIRE_DE_SAISIE
Load FORMULAIRE_DE_SAISIE 'Load "charge" et "affiche" (show) en même temps...
End Sub

Du coup le bouton NOUVEAU ADHERENT (au passage NOUVEL ADHÉRENT me paraît mieux...) n'a plus d'utilité... Je n'ai pas compris pourquoi tu utilises autant de ListBoxes dans ta UserFomr. Il me semble que ça devrait être des TextBoxes ou au pire des ComboBoxes, mais certainement pas des ListBoxes... Il te faut revoir aussi l'odre des tabulations...
 
Re : enregistrement de données

Bonjour Robert,
Désolé pour le cadavre réveillé. Au lieu d'en créer, je me suis jeté sur le post répondant approximativement à mon PB découlant de mes connaissances toutes aussi approximatives en VBA.
Bref!!!
Merci pour ton support.
Je te reviens au besoin

Didier
 
- 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
2
Affichages
874
Réponses
24
Affichages
2 K
Retour