[VBA]aide pour tableau

Résolu/Fermé
Appoline - 30 juin 2008 à 14:13
zavenger Messages postés 811 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 20 avril 2012 - 1 juil. 2008 à 13:12
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

8 réponses

zavenger Messages postés 811 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 20 avril 2012 161
30 juin 2008 à 14:49
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
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
zavenger Messages postés 811 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 20 avril 2012 161
30 juin 2008 à 15:03
tu peux peut etre copier ta macro originale et on verra comment la modifier?
0
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
zavenger Messages postés 811 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 20 avril 2012 161
1 juil. 2008 à 10:45
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
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
zavenger Messages postés 811 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 20 avril 2012 161
1 juil. 2008 à 11:15
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Ups c'est pas mon pseudo qui est apparue, j'étais sur le PC de mon collègue lool
0
zavenger Messages postés 811 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 20 avril 2012 161
1 juil. 2008 à 11:30
peut etre a cause de la selection, apres reflexion, cela devrait plutot etre

Range("A3:C13").Select
0
J'ai changé la selection en mettant : Range("A4:C13").select mais ça me fait toujours la même erreur.
0
zavenger Messages postés 811 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 20 avril 2012 161
1 juil. 2008 à 11:49
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
MErci beaucoup Zavenger, sa marche nickel ;-)
0
zavenger Messages postés 811 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 20 avril 2012 161 > Appoline
1 juil. 2008 à 13:12
de rien bonne journée
0