[VBA]aide pour tableau

Résolu
Appoline -  
zavenger Messages postés 817 Statut Membre -
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. zavenger Messages postés 817 Statut Membre 161
     
    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. Appoline
       
      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. zavenger Messages postés 817 Statut Membre 161
     
    tu peux peut etre copier ta macro originale et on verra comment la modifier?
    0
    1. Appoline
       
      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. zavenger Messages postés 817 Statut Membre 161
     
    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. Appoline
       
      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. zavenger Messages postés 817 Statut Membre 161
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Brunoush
     
    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
  7. Appoline
     
    Ups c'est pas mon pseudo qui est apparue, j'étais sur le PC de mon collègue lool
    0
  8. zavenger Messages postés 817 Statut Membre 161
     
    peut etre a cause de la selection, apres reflexion, cela devrait plutot etre

    Range("A3:C13").Select
    0
    1. Appoline
       
      J'ai changé la selection en mettant : Range("A4:C13").select mais ça me fait toujours la même erreur.
      0
  9. zavenger Messages postés 817 Statut Membre 161
     
    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. Appoline
       
      MErci beaucoup Zavenger, sa marche nickel ;-)
      0
      1. zavenger Messages postés 817 Statut Membre 161 > Appoline
         
        de rien bonne journée
        0