copier 1 valeur sur 8 d'une liste de donnees

  • Initiateur de la discussion danydan
  • Date de début
D

danydan

Guest
Bonjour a tous !

J'ai une liste de plus de 27000 donnees et je voudrais a partir de cette liste selectionner une valeur sur 8 ainsi de suite et copier le tout dans une autre liste. Comment dois-je proceder ? Vous l'avez snas doute remarque : je ne suis pas une pro d'Excel!!!
J'attends vos reponses !

Merci

Danie
 

dg62

XLDnaute Barbatruc
re

Code:
sub recopie() 

Dim i, j as integer 
range('e1'Â'Â')=range('A1'Â'Â').value

j=2 
for i = 8 to 27000 step 8 

range('E' & J).value=range('A' & i).value 

j=j+1 

next i 

end sub


le code de christhophe fonctionne correctement avc une simple modif au niveau de l'origine des données. A au lieu de B je pense.

Message édité par: dg62, à: 08/04/2005 15:19
 
D

danydan

Guest
merci à vous deux mais ça ne fonctionne toujours pas ! mais là je crois que ça vient de mon ordi : il est sous linux et pas sous windows, ça peut venir de ça ?
Ou alors c'est acrrément ma procédure qui ne va pas. Bon ne vous moquez pas, mais je vais vous dire comment je crée une macro (c'est sûr l'erreur vient de moi ):
1) je fais TOOLS, RECORD MACRO là une petite fenêtre s'ouvre avec STOP RECORDING
2) dans la colonne F je tape le code (a chaque fois que vous allez à la ligne je tape Entrez pour aller également à la ligne)
3) aprs dans le petite fenêtre je clique sur STOP RECORDING
4) ça m'affiche une fenêtre où je dois nommer la macro : je l'appelle RECOPIE et je fais SAVE
9) je me mets n'importe où mais hors de mon tableau de valeur, puis je fais TOOLS, MACRO, RUN MACRO, RECOPIE
10) j'ai l'impression que l'ordi exécute le programme mais rien n'apparait en case E
Et pour vous ça fonctionne avec mon tableau ? Si oui vous faites comment exactement ? :eek:

bon ne vous moquez pas , je suis vraiment nulle, mais j''essaie de comprendre :eek: :)

merci

danydan
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Ne t'inquiètes pas ici si on se moque ce n'est que de nous même

Pour ecrire le code il faut faire ALT F11 ou tool>macro>visual basic editor

Ensuite tu recherches ton classeur dans la liste à gauche tu fais un clic droit et tu fais insertion> module

et dans ce nouveau module tu tapes le code donné par christophe ou didier

Bon courage
 
D

danydan

Guest
bonjour !

Merci !
Ben écoute je ne sais pas ce qu'est la module : le grande case blanche à coté du = en haut de la page excell ou quelque chose d'autres ? parce que pour moi ça n'ouvre aucune case si ce n'est la STOP RECORDING ! Bon je réessaie pour voir. Et je te dis ce qu'il en est.
 

andré

XLDnaute Barbatruc
Salut,

Peut-être une solution en peu plus simple par formule.

En E1 : =A1
En E2 : =INDIRECT('A'&(LIGNE()-1)*8)
et copier cette formule vers le bas.

Si la colonne D ne comporte pas de cellules vides un double-clic sur la petite croix (en forme de +) dans le coin inférieur droit de E2 suffit pour recopier le formule dans toute sa colonne.

Ândré.
 
D

danydan

Guest
Ah ça y est j'ai enfin trouvé !
par contre le programme comporte une erreur d'après l'ordi :

sub recopie()

Dim i, j as integer
range('e1')=range('A1').value (ERREUR : j'ai remplacé e1 par E1 puis j'ai rajouté value mais ça ne fonctionne pas)

j=2
for i = 8 to 27000 step 8

range('E' & J).value=range('A' & i).value

j=j+1

next i

end sub


Ou alors je me suis trompée de programme : je devais bien utiliser le dernier envoyé, n'est ce pas ?

En tout cas merci déjà pour cette grande avancée ! je comprends un peu mieux !
 
D

Denis

Guest
Bonjour Danydan, André, Pascal et le Forum
Bon!! on va essayer + simple
dans la cellule E1 tu mets = A1)
en E2 tu mets : =Indirect('A' & Ligne(A1)*8)
puis tu fais une recopie incrémentée de E2 vers le bas et tu auras les cellules de A de 8 en 8
Bon courage et à +
Denis
 
D

danydan

Guest
Ah ok !

Bon alors j'ai effectué ce que tu m'as dit, ça marche plus ou moins mais ça me sélectionne d'autres valeurs que je ne veux pas. et Parfois j'ai la remarque #NAME ! qui apparait.
Qu'en penses-tu ?

danydan

mais la possibilité du macro devrait fonctionner il y a juste une petite erreur mais comme je ne m'y connais rien je ne peux pas corriger.

Merci à tous, vous me soulagerez d'un grand poids (j'ai vraiment beaucoup trop de données pour pouvoir les traiter à la main !)
 

dg62

XLDnaute Barbatruc
re
DanyDan

Bon je ne comprend pas. chez moi que ce soit la procedure de christophe ou la mienne tout fonctionne correctement.

Derniere question : est-tu sur d'être sur excel ? ;) ;)



les formules d'André et Denis fonctionnent également très bien et renvoient les mêmes valeurs que ma macro.

Message édité par: dg62, à: 08/04/2005 17:05
 
D

danydan

Guest
mais oui je suis sur excel !!!! :) (j'avais demandé qu'on ne se moque pas :) mais c'est vrai qu'on peut se poser la question !)
Je suis désepérée : je sais que ça devrait fonctionner !!!!! Tu as bien pris le dernier programme qui a été ecrit ? Si oui moi il m'indique qu'il y a une erreur dans ma ligne range E1 (ou a partir de cette ligne....avec les ordis on ne sait jamais excatement, enfin je rectifie JE ne sais jamais exactement !) et comme j'ai fait un copier coller pour éviter toute erreur de ma part (je me connais !) je ne comprends pas pourquoi ça ne fonctionne pas
Quel code utilises tu toi le dernier écrit ou celui que tu m'avais donné avant ?
Bon je vais tous les refaire je crois !!!! :) Pour etre sûre ! J'ai tout le week end pour y arriver !!!! Je vous tiens au courant. merci encore !
Si j'y arrive....après deux semaines de tentatives presque, ça vaut bien que je vous offre une coupe de champagne....Virtuelle biensûr ! Mais vous avez déjà toute ma reconnaissance ! ;)

A bientôt

Danydan
 
D

Denis

Guest
Bonjour Danydan, André, Pascal et le Forum
je pense, après relecture de tous ces posts, que tu es en version anglaise d'Excel donc pour la formule que je t'ai donné, il faudrait plutôt ecrire en E2 :
=Indirect('A' & Row(A1)*8)
Bon Courage et à+
Denis
 

Discussions similaires

Statistiques des forums

Discussions
313 031
Messages
2 094 573
Membres
106 054
dernier inscrit
Mohajer