Bouton sur tableau ou à côté

TURGUT-BEY Messages postés 13 Statut Membre -  
TURGUT-BEY Messages postés 13 Statut Membre -
Bonjour,

Comment créer un bouton sur un tableau de 5 colonne, quand je clic sur le bouton j'ajoute une ligne avec les meme caractéristique que celle qui la précede ?

Merci

2 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Insère un bouton activeX sur la feuille (onglet Développeur/Inserer) et dans le module de feuille, ajoutes ce code :

    Option Explicit
    Private Sub CommandButton1_Click()
      Call InsertARow
    End Sub
    Sub InsertARow()
      ActiveCell.EntireRow.Insert Shift:=xlDown
      ActiveCell.Offset(-1, 0).EntireRow.Copy Cells(ActiveCell.Row, 1)
      On Error Resume Next
      ActiveCell.EntireRow.SpecialCells(xlCellTypeConstants, xlNumbers + _
        xlTextValues + xlLogical + xlErrors).ClearContents
    End Sub
    

    Cordialement
    Patrice
    1
    1. TURGUT-BEY Messages postés 13 Statut Membre
       
      Tres bien merci infiniment, maintenant je veux que le bouton soit relier toujours à la derniere ligne du tableau, comment faire ?
      0
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Il ne faut des informations complémentaires :

      1. Dans quelles colonnes se situe le tableau ?
      2. A partir de quelle ligne ?
      3. Le tableau est-il continu, c'est-à-dire qu'il n'y a jamais de ligne entièrement vide ni de colonne entièrement vide (i.e sans titre) ?

      et si la réponse à 3 est non :
      4 . Y-a-t-il une des 5 colonnes qui est toujours renseignée ? si oui laquelle ?
      0
      1. TURGUT-BEY Messages postés 13 Statut Membre > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour,

        C'est un tableau continu, quelques colonnes sont reliées a d'autres colonnes du tableau (des conditions).
        Je suis sur la ligne 27 (son numero sur le tableau est 21).

        Merci
        0
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Comme tu n'as pas répondu précisement aux 3 questions, j'ai supposé que la première cellule de ton tableau se situe en C27.
    Adapte le code à ton besoin
    Option Explicit
    Private Sub CommandButton1_Click()
      Call CopierDernièreLigne
    End Sub
    
    Sub CopierDernièreLigne()
    Dim rng As Range
        ' Définir le tableau (qui commence en C27)
        Set rng = ActiveSheet.Range("C27").CurrentRegion
        ' Définir la dernière ligne du tableau
        Set rng = ActiveSheet.Rows(rng.Row + rng.Rows.Count - 1)
        ' Copier la ligne sur la suivante
        rng.Copy rng.Offset(1)
        ' Effacer les constantes
        rng.Offset(1).SpecialCells(xlCellTypeConstants, xlNumbers + _
                      xlTextValues + xlLogical + xlErrors).ClearContents
    End Sub

    0
    1. TURGUT-BEY Messages postés 13 Statut Membre
       
      Tres bien, mais un probleme a occuré..
      quand je click une deuxieme fois un message s'ouvre : erreur d'exécution 1004 / pas de cellules correspendantes / Fin ou débogage ou aide

      quand je click débogage cette commande se met en jaune :
      rng.Offset(1).SpecialCells(xlCellTypeConstants, xlNumbers + _
      xlTextValues + xlLogical + xlErrors).ClearContents
      0
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Effectivement, l'erreur survient quand la dernière ligne ne contient pas de donnée ..

      Ajoutes les deux lignes n° 2 et 5 :
          ' Effacer les constantes
          On Error Resume Next
          rng.Offset(1).SpecialCells(xlCellTypeConstants, xlNumbers + _
                        xlTextValues + xlLogical + xlErrors).ClearContents
          On Error GoTo 0
      0
    3. TURGUT-BEY Messages postés 13 Statut Membre
       
      derniere question, sur mon tableau j' ai une colonne C prend =B+6 (Colonne B est une date)
      le probleme c'est que si la cellule B est vide C n'est pas vide mais prend la date de 01/01/1900

      comment réctifier ceci.
      0
      1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784 > TURGUT-BEY Messages postés 13 Statut Membre
         
        Avec une formule du genre :
        =SI(B2>0;B2+6;"")
        0
    4. TURGUT-BEY Messages postés 13 Statut Membre
       
      Je vous remercie,
      bon travail.
      0