Transfert donées Excel d'1 feuille à 1 autre

Résolu/Fermé
MoyoOo - 5 mai 2008 à 11:44
MoyoOo Messages postés 3 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 6 mai 2008 - 6 mai 2008 à 15:15
Bonjour,

Etant actuellement en stage, et devant traiter un grand nombre de données je cherche à aller plus vite dans leur traitement et je découvre en ce moment les macros excel et VBA.

J'ai essayer de regarder les messages déjà postés mais aucun ne m'ont éclairé.

Voila mon problème.
Dans un fichier excel, j'ai en première feuille plusieurs lignes de données horaires pour différents noms de code (en colonne A). je dois avoir environ 80 noms de code et pour chacun de ces noms de code, j'ai des données par heure pendant 1 mois environ.
Ces noms de code sont classés par ordre alphabétique avec 3 colonnes :
| CODE | DATE ET HEURE (jj/mm/aaaa hh:mm) | DONNEE à traiter |

J'aimerais à partir de cette première feuille extraire pour chaque nom de code les informations les concernant et les copier dans la feuille (du même fichier) portant le bon nom de code. J'aimerais en fait copier les 3 colonnes.

Je ne sais pas si j'ai été clair jusque là. J'espère que vous pourrez m'aider. Si vous voulez plus de précisions n'hésitez pas m'en demander.

Je vous remercie par avance.

++
A voir également:

3 réponses

kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 92
5 mai 2008 à 12:50
Bonjour,

"J'aimerais à partir de cette première feuille extraire pour chaque nom de code les informations les concernant et les copier dans la feuille (du même fichier) portant le bon nom de code."

est ce que pour chaque "nom de code" tu a une feuille nommée "nom de code" ou quoi?
preciser un peu
@+
0
MoyoOo Messages postés 3 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 6 mai 2008
5 mai 2008 à 13:15
Bah enfait dans la première feuille on va dire que j'ai des noms de code allant de A à Z, et à côté de ça j'ai 26 feuilles portant les noms A, B, C ... jusquà Z et je voudrai transferer dans chaque feuille de A à Z, les informations contenues dans la première feuille ou les données ne sont pas séparées.

En gros je ne veux pas ke la macro ou le programme, me crée les feuilles portant chaque nom de code. Elles sont déja créés.

Autre précision, mes feuilles ne sont pas classées dans le même ordre ke les noms de codes qui apparaissent dans la première feuille ... et certains noms de code (de la première feuille) n'ont pas de feuille correspondante car ils ne m'interessent pas.

Ai-je répondu à ta question? Suis-je assez précis?

merci de te pencher sur le pb :)
0
kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 92
5 mai 2008 à 15:29
si les "noms de code" sont identiques que les nom des feuille cette macro devra faire ce que tu veux
remplace "première feuille " par nom de la première feuille

Sub transfertdonnées()
Dim x As Long, ligne As Integer
On Error Resume Next
Sheets("première feuille ").Select
For x = 2 To Range("A65535").End(xlUp).Row
ActiveSheet.Range("A" & x).Select
ligne = ActiveCell.Row

Sheets(ActiveCell.Value).Range("A65536").End(xlUp).Offset(1, 0).Value = Sheets("première feuille ").Range("A" & ligne).Value
Sheets(ActiveCell.Value).Range("B65536").End(xlUp).Offset(1, 0).Value = Sheets("première feuille ").Range("B" & ligne).Value
Sheets(ActiveCell.Value).Range("C65536").End(xlUp).Offset(1, 0).Value = Sheets("première feuille ").Range("B" & ligne).Value

Next x
cancel = True
End Sub




bonne journée
0
MoyoOo Messages postés 3 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 6 mai 2008
5 mai 2008 à 15:49
OUUaii ça marche trop fort !
YaV just une erreur ici:

Sheets(ActiveCell.Value).Range("C65536").End(xlUp).Offset(1, 0).Value = Sheets("première feuille ").Range("B" & ligne).Value
G just remplacé le B par un C et c bon.

Jte remercie grandement, jvé essayer d'intégrer ça dans mon vrai classeur et faire tourner tout ça, mais tu m'a été d'une grande aide je pense pouvoir m'en sortir tt seul maintenant.

Mercie bcp de t'être penché sur le problème.

Bonne aprem.

Tchô
0
kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 92
5 mai 2008 à 15:57
désolé j'ai pas fait attentient en mettant B au lieu de C
bonne chance bonne journée
0
MoyoOo Messages postés 3 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 6 mai 2008
6 mai 2008 à 15:15
Ahh je me suis creusé la tête mais j'ai enfin trouvé le problème.
La macro ne marchais pas pour les codes dont le nom débutai par M et puis pour tous ceux d'après.
comme dans mon premier onglet duquel je transfrérait les données, j'avais plus de 48 000 lignes de données, et que dans la macro on a attribué le type Integer à la variable ligne ==> ça bloquai à la ligne 32 767 (vers la lettre M)exactement puisque Integer va de -32 768 à 32 767

J'ai donc remplacé au début de la macro :

Dim x As Long, ligne As Integer
PAR
Dim x As Long, ligne As Long

et miracle tout marche !!

Donc pour ceux que ça intéresse si on a plus de 32 767 lignees de données vo mieux attribuer le type "Long".

++
0