Transfert donées Excel d'1 feuille à 1 autre
Résolu
MoyoOo
-
MoyoOo Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
MoyoOo Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
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.
++
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:
- Transfert donées Excel d'1 feuille à 1 autre
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Word et excel gratuit - Guide
- Verrouiller cellule excel sans verrouiller la feuille - Guide
- Déplacer colonne excel - Guide
3 réponses
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
@+
"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
@+
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
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
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ô
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ô
désolé j'ai pas fait attentient en mettant B au lieu de C
bonne chance bonne journée
bonne chance bonne journée
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".
++
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".
++
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 :)