[VBA]aide pour tableau

Résolu
Bonjour à tous,

J'ai un tableau qui fait 10 lignes (de la ligne 3 à la ligne 13) et j'ai une maccro qui prend les valeurs dans une autre feuille et qui les enregistres dans ce tableau, mais mon problème c'est que je voudrais que quand on arrive à la ligne 13 faire une maccro qui fasse que la prochaine valeur enregistrée aille dans la ligne 3 et pas à la ligne 14 (et si possible que ça efface le reste du tableau), mais je suis bloquée je vois pas comment on peut faire....

Si quelqu'un a une idée ou un début d'idée.

Merci d'avance et bonne journée à tous(tes) lol
Configuration: Windows 2000
Internet Explorer 5.01

8 réponses

  1. essayons un petit bricolage comme

    Selection.End(xlDown).Select
    if derniereligne = 14 then
    derniereligne = 3
    end if
    Range("a" & derniereligne).Select

    ActiveSheet.Paste

    if derniereligne = 3 then
    Range("B4:D13").Select
    Selection.Delete Shift:=xlUp
    end if

    Sheets("Données").Activate
    1. MErci beaucoup Zavenger, sa marche nickel ;-)
  2. peut etre a cause de la selection, apres reflexion, cela devrait plutot etre

    Range("A3:C13").Select
    1. J'ai changé la selection en mettant : Range("A4:C13").select mais ça me fait toujours la même erreur.
  3. Ups c'est pas mon pseudo qui est apparue, j'étais sur le PC de mon collègue lool
    1. Ca marche mais avant qu'il efface la zone de la selection, il y a une erreur : "La méthode paste de la classe worksheet a echoué" et il souligne nen jaune "Actibesheet.paste"
      1. Et maintenant avec l'effacement ? Si cela n'efface pas ce qu'il faut, tu peux ajuster la zone de selection

        ...
        Selection.End(xlDown).Select
        derniereligne = ActiveCell.Row + 1
        if derniereligne = 14 then
        derniereligne = 3
        Range("B3:D13").Select
        Selection.Delete Shift:=xlUp
        end if
        Range("a" & derniereligne).Select
        ..
        1. Dans un premier temps, pour etre sur l'on modifie bien le bon code, je ferais ceci (bien sur pas sur le fichier original, mais sur une copie)

          cela devrait passer de la ligne 14 ä la ligne 3
          On feras l'effacement apres

          ...
          Selection.End(xlDown).Select
          derniereligne = ActiveCell.Row + 1
          if derniereligne = 14 then
          derniereligne = 3
          end if
          Range("a" & derniereligne).Select
          ..
          1. Merci pour le code,

            Ca marche bien, quand il arrive à la ligne 14 il saute à la 3 sauf qu'une fois qu'il revient à la ligne 3 il enregistre tout dans cette ligne au lieu de faire un enregistrement dans chaque ligne jusqu'à la 13.
        2. tu peux peut etre copier ta macro originale et on verra comment la modifier?
          1. Re, je post la macro

            Sub DonnéesPourGraphe()

            Dim D As Date
            Dim T As Date
            Dim QR As Integer
            Dim C As Integer
            Dim derniereligne As String

            Sheets("Données").Activate

            QR = Cells("10", "A").Value
            Range("D26").Select
            Selection.Value = QR

            D = DateValue(Now)
            T = TimeValue(Now)

            Range("B26").Select
            Selection.Value = D

            Range("C26").Select
            Selection.Value = T

            C = Cells("16", "A").Value
            Range("C16").Select
            Selection.Value = C

            Range("C16").Select
            Selection.Copy
            Sheets("graphe").Select
            Range("D3").Select
            ActiveSheet.Paste
            Sheets("Données").Activate

            Range("B26:D26").Select
            Selection.Copy

            Sheets("graphe").Select

            Range("A1").Select

            Selection.End(xlDown).Select
            derniereligne = ActiveCell.Row + 1
            Range("a" & derniereligne).Select

            ActiveSheet.Paste

            Sheets("Données").Activate

            StartTIMER

            End Sub
        3. Bonjour,
          Je ne connais ta macro qui remplis ton tableau, mais pourquoi ne pas la modifier pour faire que si la ligne de destination = 14 alors on efface le tableau et ligne de destination = 3
          1. Justement c'est ce que je veux faire, mais le pbm c'est que je sais pas trop comment faire.
            je maitrise pas très bien les boucles sous vba (je suis newbee et je dois faire cette macro pour le boulot, c'est un peu galère)