|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
Bonjour,
Je tente de compiler des données et utilises pour la première fois le code Do Until... Loop. Lors de l'exécution de la macro, celle-ci s'arrête sur la ligne : Ci-dessous le code tapé : Code :
D'avance merci !
__________________
Cordialement, Runsh |
||
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : juillet 2006 Messages : 346 ![]() |
Bonjour,
Que voulez-vous faire ? Vous voulez parcourir toutes les feuilles du classeur et les concatener sur un feuille de resultat ? Je remarque qu'il manque d'office une affectation : set MySheet=? (activesheet ? peut-etre autre chose en fonction de ce que vous répondrez à la question précédente). D'autre part il risque d'y avoir un bug sur la ligne Code :
LR1 = .Range("A" & .Rows.Count).End(xlUp).Row Bonne journée. |
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
Bonjour AccessNewbie,
J'ai tendance à vous énerver avec mes questions à la noix, mais vous me pratiquez bien puisque vous avez tout compris. Je cherche à compiler des données de différentes feuilles. Le nombre de feuilles pouvant varier, j'ai pensé à écrire ainsi. Je pense que votre solution Set MySheet = ActiveSheet est pas mal. Si ça ne marche pas, je reviens vers vous car vous avez compris ma finalité. J'ai placé LR1 = ... plus bas dans le code, en effet il manquait un bloc With...
__________________
Cordialement, Runsh |
|
|
00
|
|
|
#4 | ||
|
Membre confirmé
![]() Inscription : juillet 2006 Messages : 346 ![]() |
Vous devriez plutot utiliser une boucle dans cet esprit :
Code :
Et j'ai pas compris le Qu'est ce que cela signifie ? qu'attendez vous en faisant cette commande ? Je vous laisse adapter le code à votre cas PS : Ca a fonctionné l'autre bout de code que je vous avait pondu ? |
||
|
|
10
|
|
|
#5 |
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
Access Newbie,
Je peux très bien vous vouvoyer mais vous pouvez me tutoyer, j'aime autant. L'autre bout de code était parfait, je l'ai adapté à mon cas et j'aurai à ce propos quelques questions à vous poser car je n'ai pas saisi une petite chose. Je vais de suite tester le code que vous venez d'écrire. Les variables MSYear et MSMonth me serviront tout de suite, c'est que j'y vais pas à pas. Chaque nom d'onglet se termine par jjmmaa et j'en ai besoin car comme vous le voyez, je colle les données de chaque feuille dans l'onglet de destination en colonne B. En A, je souhaite récupérer le nom de chaque feuille pour ensuite les coller en A(x). Car au bout du bout, j'aurai toutes mes données compilées et j'aimerai pouvoir différencier chaque "période" car j'en aurai besoin par la suite. Je vais tenter de mon côté de "pondre" quelque chose mais ça ne m'étonnerait pas que je revienne vers vous plus vite que vous le pensez
__________________
Cordialement, Runsh |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() |
bonjour
tu a tapé ceci et en aucun cas tu a precisé avant le quel c'etait ou alors ailleur doncil manque une portion du cade ensuite tu dis: Code :
MSYear = "20" & Left(Right(MySheetName, 6), 2) au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
|
|
#7 | ||
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
Afin de récupérer la période en colonne A de ma feuille "Compiled Data", période que je récupère dans le nom de l'onglet de base, voilà ce que j'ai tapé (merci Access Newbie) :
Code :
Mais j'ai une erreur sur cette ligne : Code :
.Range("A" & .Rows.Count.End(xlUp).Offset(1, 0) & ":A" & LR2).Value = "20" & Left(Right(MySheet.Name, 6), 2) & "." & Left(Right(MySheet.Name, 4), 2)
__________________
Cordialement, Runsh |
||
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() |
re
ferme les parenthezes d'un range ca marchera mieux Code :
.Range("A" & .Rows.Count).End(xlUp).Offset(1, 0) & ":A" & LR2).Value = "20" & Left(Right(MySheet.Name, 6), 2) & "." & Left(Right(MySheet.Name, 4), 2)
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
|
|
#9 |
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
Nous devons être sur la bonne voie mais il me met "syntax error".
Le pire c'est que je suis demandeur mais ne suis pas suffisamment calé pour corriger moi-même...
__________________
Cordialement, Runsh |
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() ![]() |
Salut
Voila une écriture différente, je trouve l'utilisation de Cells plus adapté que Range Code :
.Range(.Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0), .Cells(.Cells(.Rows.Count, "B").End(xlUp).Row, "A")).Value Voila aussi la correction de ta ligne de code Code :
.range(.Range("A" & .Rows.Count).End(xlUp).Offset(1, 0) & ":A" & LR2).Value Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
|
|
20
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Bonsoir à tous,
J'ai une remarque sur cette ligne Code :
For Each MySheet In ThisWorkbook.Sheets Il fallait mettre Code :
For Each MySheet In ThisWorkbook.Worksheets
__________________
Cordialement. |
|
|
40
|
|
|
#12 |
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
Merci pour toutes vos corrections. C'est très bien au niveau de la compilation des données.
Comment faire maintenant pour que la période ressorte en "2010.10" au lieu de "2010,10" ? Quand je faisais : Code :
.Value = "20" & Left(Right(MySheet.Name, 6), 2) & "." & Left(Right(MySheet.Name, 4), 2) En changeant comme ceci : Code :
.Value = "20" & Left(Right(MySheet.Name, 6), 2) & "," & Left(Right(MySheet.Name, 4), 2) Or je voudrais avoir "2010.10". Comment transformer mon code SVP ? Merci
__________________
Cordialement, Runsh |
|
|
00
|
|
|
#13 | |||
|
Membre confirmé
![]() Inscription : juillet 2006 Messages : 346 ![]() |
Citation:
![]() Je passerai par une variable intermediaire Code :
|
|||
|
|
00
|
|
|
#14 |
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
Bonjour Access Newbie,
Je me permets de mettre en pièce jointe le fichier, car malgré ton code, ça ne fonctionne pas... Peut-être qu'avec l'exemple sous les yeux tu arriveras au résultat que je cherche à obtenir... Je te remercie toi ainsi que toutes les peronnes qui me favorisent énormément la tâche et m'apprennent beaucoup.
__________________
Cordialement, Runsh |
|
|
00
|
|
|
#15 | ||
|
Membre confirmé
![]() Inscription : juillet 2006 Messages : 346 ![]() |
Ce n'est pas grand chose, il s'agit juste d'un probleme e format de ta colonne A de la feuille "compiled datas".
Soit tu met le format "à la main" en selectionnant ta colonne et en mettant un format texte, soit tu le fais par vba (mais je ne suis pas sur que cela soit très utile). Ci dessous l'exemple avec du vba Code :
PS2 : Si tu as des soucis de compréhension sur l'autre bout de code, retourne dans la discussion appropriée et poste un message |
||
|
|
20
|
|
|
#16 |
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
Super, ça fonctionne nickel, merci beaucoup !!
Je mets "Résolu" sur ce sujet mais je reviendrai sûrement prochainement avec d'autres questions. Merci à vous tous pour votre patience et vos réponses ![]() Bonne journée !
__________________
Cordialement, Runsh |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com