Copier coller a partir d'une ligne définie (msgbox?)

cs_mano33 Messages postés 2 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 4 juillet 2008 - 3 juil. 2008 à 23:41
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 6 juil. 2008 à 12:15
salut tt le monde. J'ai cherché sur  le forum et j'ai pas encore trouvé mon bonheur, donc si qq'un passe par la et peut me donner un coup de main, ca serait super utile!

Mon probleme:

Tous les jours, j'ai des valeurs qui sont actualisés par nom. Je veux suivre l'evolution dans le temps de ces valeurs. A l'heure actuelle, je copie colle special tous les jours les valeurs du jour dans la ligne d'aujourd'hui.
Si on est le 15 fevrier, je copie colle special dans la ligne du 15 fevrier etc
Le fichier - simplifié - se présente de la maniere suivante:

<colgroup><col style=\"WIDTH: 60pt\" span=\"10\" width=\"80\" /></colgroup>----
1, Valeurs, , , , Emmanuel, Laurent, Clement, Guillaume, Ben, ----
2 Emmanuel, 250, , , 15-févr, , , , , , ----
3 Laurent, 20, , , 16-févr, , , , , , ----
4 Clement, 500, , , 17-févr, , , , , , ----
5 Guillaume, 200, , , 18-févr, , , , , , ----
6 Ben, 150, , , 19-févr

Ce que je voudrais faire, sans passer par un if/paste value qui ne marche pas car le fichier est bcp plus long, ca serait d'avoir une messagebox qui me dise "a partir de quelle ligne copier/coller?", et la si on est le 16 fevrier, je dis ligne 3, et la macro me copie colle les valeurs actualisées de gauche dans la ligne du 16 fevrier, le lendemain je dis ligne 4 et la macro me copie colle les valeurs actualisées de gauche dans la ligne du 17 fevrier, et ainsi de suite.

Si jamais qq'un a une solution, je suis tres preneur :-)
Dites moi si vous voulez + de precision

En tt cas bravo a tous pour vos talents, c'est super utile de vous lire

5 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 juil. 2008 à 00:31
salut,
l'expression "copie colle special" me laisse penser que tu parles d'excel (et donc VBA), pas VB.NET
me trompe-je?

<li> Vous êtes ici : [infomsg.aspx Thèmes] / [infomsgf_VB-NET-VB-2005_40.aspx VB.NET et VB 2005] / [infomsgt_DIVERS_221.aspx Divers] / [infomsgt_TRUCS-ASTUCES_243.aspx Trucs & Astuces] / Copier coller a partir d'une ligne définie (msgbox?)</li>
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
4 juil. 2008 à 00:57
Salut,

si tu es effectivement en VBA comme le précise PCPT (+ mot clé 'macro')

Soit tu recherches dans la plage la date avec .Find, soit tu parcours les cellules avec boucle.

Avec Find, en admettant que tu cherches le 18-Fevr, qui se trouve dans la colonne D :
    Dim iLine as integer
iLine = Range("D1:D" & Range"D1").End(xlDown).Row).Find(Format(Date, "dd-Mmm"))

Ensuite, pour affecter les valeurs sur les autres lignes :
cells(iLine, 1).Value = "valeur colonne A et ligne " & iLine
cells(iLine, 2).Value = "valeur colonne B et ligne " & iLine
etc..

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
cs_mano33 Messages postés 2 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 4 juillet 2008
4 juil. 2008 à 14:58
salut Mortalino - merci d'avoir pris le tempsde m'aider.
En fait, la solution que tu me proposes va bien m'aider (je pense, faut que je teste cette après midi!) pour une autre feuille, mais je viens de réaliser que je me suis un peu mal expliqué dans mon premier post.

Voila, en fait, en colone D, ce ne sont pas des dates, ce sont des chiffres.
Cela prend cette forme:

A                  B                        C                                              D   E
1, Valeurs, , , , Emmanuel, Laurent, Clement, Guillaume, Ben, ----
2 Emmanuel, 250, , , 1, , , , , , ----
3 Laurent, 20, , , 2, , , , , , ----
4 Clement, 500, , , ..., , , , , , ----
5 Guillaume, 200, , , 31, , , , , , ----
6 Ben, 150, , , 1

Le but, c'est de construire un historique qui ne se refere pas a la date en tant que telle, mais qui se refere au jour du mois (1er jour, 2eme jour etc). Si Emmanuel a 250 en E1, 270 en E2 etc, le mois suivant, si en 1 il est a 240, je sais qu'il est en retard de 10.
Je pourrais tester ta solution quand meme, mais je probleme c'est que je prends en compte 2 mois, donc des 1, des 2, des 3, des 4 etc il y en aura 2 a chaque fois dans la colonne D.
Peut etre je devrais alors appeler le 1 du mois precedent 1.1, et le 1 du mois en cours 1.2? Je vais tester ca cette apres-midi mais j'ai l'impression, et je peux me tromper, que le mieux serait d'avoir une msgbox qui me dise "copier coller sur quelle ligne?" et moi si je dis "5", il copie colle toutes les données du jour en "E5".

Je teste ce que tu m'as donné en tt cas et merci encore pr ton aide
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 juil. 2008 à 15:10
topic déplacé de VB.NET vers VBA
ps : pour les MP (ultérieurs s'il y a), mieux vaut préciser le lien, c'est plus pratique ;)
0

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

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 juil. 2008 à 12:15
salut,

si tu cherches autres choses que des dates, ce n'est pas un problème :
Range("D1:D" & Range"D1").End(xlDown).Row).Find("La valeur")

Ensuite, Utilise FindNext pour recherché la seconde valeurs

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
Rejoignez-nous