Copier coller

Jeje1830 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
Jeje1830 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour ,
Sur ma première feuille Excel celle ci fait office d'interface pour l'utilisateur avec des cases à remplir comme "désignation " " quantité donné aux agents ", "date "."Vac".

Lorsque l'utilisateur appui sur un bouton ,j'aimerai que les valeurs qu il a rempli précédemment dans chacune des cases soient copiés dans une autre feuille afin que je puisse avoir un historique de ce que j'ai donné aux agents à quelle date etc.

Si qqn à le code vba pour ça, ça serait cool merci !

2 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,


    Si qqn à le code vba pour ça, ça serait cool merci !

    Ah ben.. chaque cas est un peu particulier .... et donc.. il faut CODER en fonction du besoin.
    Je doute que quelqu'un est déjà exactement ce que tu souhaites faire....

    Mais bon.. ce n'est pas bien compliqué.

    Sais tu au moins codé un peu en VBA ?

    Par exemples :
    - Lire le contenu d'une cellule ? ( tu peux le faire avec
     valeurCellule = Range("A1").value


    - Ecrire du contenu dans une cellule ?
    ( tu peux le faire avec
    Range("A1").value =   Unevaleur 


    Bien entendu.. tu peux spécifier la feuille sur laquelle agir ... par exemple :
    Sub toto()
    
    Dim Sh1 As Worksheet
    Dim Sh2 As Worksheet
    Dim valeurCell As Variant
    
    
    'J'indique que Sh1 = Feuil1 et Sh2 = Feuil2
    Set Sh1 = ThisWorkbook.Sheets("Feuil1")
    Set Sh2 = ThisWorkbook.Sheets("Feuil2")
    
    'Je lis le contenu de la cellule B3 de la feuille 1
    valeurCell = Sh1.Range("B3").Value
    
    'Je mets cette valeur dans la feuille 2 dans la cellule B3 également
     Sh2.Range("B3").Value = valeurCell
    
    
    End Sub
    
    
    


    Bien entendu.. vu que toi tu veux historiser à chaque saisie.. il faudra "ajouter" une nouvelle ligne dans la feuille 2 au fur et à mesure...
    Par exemple en allant chercher au préalable le numéro de la dernière ligne remplie de cette feuille puis en y ajoutant +1

    avec ce code par exemple :
    
    Derniere_Ligne = Sh2.Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row 
    
    


    Et donc le code de "recopie" deviendrait :
    'Je mets cette valeur dans la feuille 2 dans la cellule B3 également
     Sh2.Range("B" & Derniere_Ligne+1).Value = valeurCell
    


    0
  2. Jeje1830 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
     
    Cela fonctionne cependant j'ai pas réussi au niveau du code pour qu'a chaque fois que je clic sur le bouton ma valeur se mettent sur la même colonne mais de la ligne suivante (c'est à dire en dessous )

    Encore merci du coup de main
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Sans voir ton code. ... impossible de t'aider
      0
      1. Jeje1830 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Private Sub CommandButton24_Click() ' bouton pour générer un historique

        'Je declare mes variables

        Dim sh1 As Worksheet
        Dim sh2 As Worksheet
        Dim valeurCell As Variant

        'j'indique que Sh1 = feuille interface et sh2 = historique commande

        Set sh1 = ThisWorkbook.Sheets("Interface")
        Set sh2 = ThisWorkbook.Sheets("historiquecommande")

        'je lis le contenu de la cellule F9 de la feuille interface

        valeurCell = sh1.Range("F15").Value
        sh2.Range("E2").Value = valeurCell

        valeurCell = sh1.Range("D15").Value
        sh2.Range("D2").Value = valeurCell

        valeurCell = sh1.Range("J15").Value
        sh2.Range("F2").Value = valeurCell

        valeurCell = sh1.Range("F9").Value
        sh2.Range("B2").Value = valeurCell

        valeurCell = sh1.Range("D9").Value
        sh2.Range("A2").Value = valeurCell

        valeurCell = sh1.Range("J9").Value
        sh2.Range("C2").Value = valeurCell

        valeurCell = sh1.Range("M15").Value
        sh2.Range("G2").Value = valeurCell
        ' Je met ces valeurs dans la feuille historiquecommande

        End Sub
        0
    2. Jeje1830 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
       
      Les valeurs de ma première feuille "interface" se mettent dans la cellule que je desire de la feuille "historiquecommande".Cependant j'aimerai qu'a chaque clic ça se mette a la ligne du dessous
      0