[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. 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
    0
    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)
      0
  2. tu peux peut etre copier ta macro originale et on verra comment la modifier?
    0
    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
      0
  3. 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
    ..
    0
    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.
      0
  4. 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
    ..
    0
    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"
      0
      1. Ups c'est pas mon pseudo qui est apparue, j'étais sur le PC de mon collègue lool
        0
        1. peut etre a cause de la selection, apres reflexion, cela devrait plutot etre

          Range("A3:C13").Select
          0
          1. J'ai changé la selection en mettant : Range("A4:C13").select mais ça me fait toujours la même erreur.
            0
        2. 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
          0
          1. MErci beaucoup Zavenger, sa marche nickel ;-)
            0
          2. @Appolinede rien bonne journée
            0