Bouton "Ajout de ligne"

Résolu
Frozenfrigo Messages postés 22 Statut Membre -  
Frozenfrigo Messages postés 22 Statut Membre -
Bonjour,

J'essaye de faire une feuille excel ayant pour fonction le suivi de l'évolution d'une valeur.

J'ai donc commencé par faire un tableau lié à un graphique.
(jour 1: valeur1, jour 2: valeur 2, jour 3 etc etc)

1ere question, j'aimerais utiliser un moment précis mais je n'arrive pas à utiliser à la fois une date et une heure dans la même cellule et utiliser plutôt:
"mardi28juin 08h15, valeur 1, mercredi 29juin 09h16 valeur 2" etc.

Deuxièmement, J'aimerais donc faire un bouton qui ajoute une ligne au tableau1, dans en 1ere colonne entre la date précise (avec l'heure), et renvoie la valeur actuelle de la cellule c10:c14 en colonne 2

Pour l'instant, j'ai réussi à créer le bouton, et à créer une macro vide...!

Merci pour votre temps et pour votre aide!

6 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    1ere question
    Pour utiliser à la fois une date et une heure dans la même cellule
    il faut la saisir correctement
    28/6/16 8:15

    et avoir un format personnalisé
    jjj j mmm hh"h"mm
    pour la visualiser selon ton désir.

    Deuxièmement,
    renvoie la valeur actuelle de la cellule c10:c14 en colonne 2
    c10:c14 n'est pas une cellule mais une plage : de quelle cellule veux-tu la valeur ?

    0
    1. Frozenfrigo Messages postés 22 Statut Membre
       
      Ah je dois peut être préciser, la valeur que je souhaite entrer dans une nouvelle ligne du tableau doit rester telle quelle, et la celulle c15 est une somme donc il faudrais renvoyer la valeur et non le contenu de la cellule.
      0
  2. Frozenfrigo Messages postés 22 Statut Membre
     
    Pardon j'ai en effet confondu le nom et le contenu de la cellule en question: Il s'agit de c15.

    Pour la date&heure j'ai réussi, merci beaucoup! en effet j'ai trouvé le format.
    0
    1. Frozenfrigo Messages postés 22 Statut Membre
       
      Je me permets de faire remonter ce sujet...
      0
  3. Frozenfrigo Messages postés 22 Statut Membre
     
    Toujours pas de solution pour cette macro? J'ai vraiment besoin d'aide svp, je suis complétement imperméable au code... je ne comprends absolument pas...
    0
    1. Frozenfrigo Messages postés 22 Statut Membre
       
      en gros:
      -Ajouter une ligne "tableau1" (en bas)
      -Colonne 1 "Maintenant (date & heure à l'instant ou je clique" Colonne 2 valeur de la cellule c15 (attention le contenu de la cellule est une formule, il faut entrer la valeur et non la formule)
      -Actualiser
      0
  4. Frozenfrigo Messages postés 22 Statut Membre
     
    Alors j'ai pu avancer un peu seul, voici ce que j'ai reussi à faire avec l'enregistreur de macro:

    Sub Macro_Bouton()
    '
    ' Macro_Bouton Macro
    '

    '
    Range("Tableau1[#All,[Colonne1]]").Select
    Selection.ListObject.ListRows.Add AlwaysInsert:=True
    Range("B22").Select
    Selection.Copy
    Range("B25").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Range("D17").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("C25").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Range("D17").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    End Sub

    J'ai donc bien un ajout de ligne en bas du tableau, il copie la valeur temps dans la première colonne et la valeur que je veux dans la seconde. Ca marche super!

    J'ai par contre un dernier problème: ça ne marche qu'une fois, après il ajoute des lignes vides. Je vois le problème:
    Range("B25").Select Selection.PasteSpecial
    et également
    Range("C25").Select Selection.PasteSpecial

    Ce n'est pas en B25 et en C25 que je veux mais valeurs, enfin la première fois oui, mais après, il faudra qu'il passe à la ligne d'après!

    Il faut donc lui dire "coller dans la dernière ligne de la colonne 1" et "dernière de la colonne 2".

    La macro est basée sur une cellule (B22) ayant pour contenu =maintenant.
    Il faudrait donc ajouter un "actualiser" en début de macro si possible!

    Merci de votre aide!
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Si j'ai bien compris, ton tableau est en colonne B et tu veux avoir une nouvelle ligne avec en B le jour et l'heure puis en C la valeur de la ligne précédente. Voilà ce que cela pourrait donner :
    Sub Macro_Bouton()
    '
    ' Macro_Bouton Macro
    '
    Dim lig As Long
    lig = Range("Tableau1").Rows.Count + Range("Tableau1").Row - 1
    Range("Tableau1").ListObject.ListRows.Add AlwaysInsert:=True
    Cells(lig, "C").Copy
    Cells(lig + 1, "C").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Cells(lig + 1, "B").Value = Now
    Application.CutCopyMode = False
    Cells(lig + 1, "D").Activate
    End Sub
    
    0
  7. Frozenfrigo Messages postés 22 Statut Membre
     
    Merci mais j'ai fini par réussir avec ça finalement!

    Sub Macro16()
    '
    ' Macro16 Macro
    '

    '
    Range("Tableau1[#All,[Colonne1]]").Select
    Selection.ListObject.ListRows.Add (1)
    Range("J2").Select
    Selection.Copy
    Range("B22").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Range("K2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("C22").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Range("D21").Select
    Application.CutCopyMode = False
    ActiveSheet.Shapes.Range(Array("Button 51")).Select
    Selection.OnAction = "Macro16"
    Range("H19").Select
    End Sub

    Au lieu d'ajouter les lignes en bas, j'ajoute en haut et copie les valeurs dans la même case à chaque fois.

    Merci quand même!
    0