|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 14 ![]() |
Bonjour, pour mon boulot je me suis fait une petite macro qui me permet de trier certaines données , de mettre en forme etc
La base qui contient les données est un fichier Txt. J'arrive à l'importer, trier quelques lignes mais j'ai un soucis. dans la colonne B j'ai des cellules qui ont des valeurs du genre "e cadre 100" Je voudrais supprimer juste "e cadre" et laisser "100" J'y arrive pour une cellule mais je n'arrive pas a faire une boucle pour que toutes les cellules de la colonne B contenant cette valeur. Avez vous une idée pour m'aiguiller car la je galère pas mal...?? Merci |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Marcel GALANODéveloppeur informatique Inscription : juillet 2009 Messages : 644 ![]() |
Bonjour à toi, Bonjour au Forum,
Bienvenu! Tu n'as pas à boucler sur tes cellules (personnellement, j'évite tant que possible) pour effectuer ton remplacement. Pour ce faire, tu peux appliquer directement la méthode Replace à ton champ de cellules. Exemple à adapter : Code :
Range("A1:A50").Replace What:="e cadre", Replacement:="", LookAt:=xlPart
__________________
Bien Cordialement. Marcel Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.![]()
|
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Si tu dis que tu y arrives pour une cellule, dis-nous comment tu fais qu'on puisse t'aider à l'adapter pour toutes les cellules.
Et il faudrait aussi plus de détail sur ce que peuvent contenir les cellules : c'est toujours le même texte avec le nombre qui change ? Du texte avec un nombre à la fin ? ... Le traitement sera très différent selon les cas. Il faut toujours se demander : "Si je devais le faire manuellement, je ferais comment", ensuite le VBA ne sert qu'à automatiser tout ça.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 14 ![]() |
Alors merci pour vos réponses....
J'ai testé la méthode de MarcelG, ca marche impec.... Merci |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 14 ![]() |
Je vous embete une fois de plus mais j'ai besoin d'un autre renseignement...
Toujours avec mon fichier, mais concernant la mise en forme comment selectionner une plage cellule dans la colonne A, qui va de la cellule contenant un texte jusqu'a la prochaine ligne vide ?? Je joins un fichier exemple. Exemple je voudrais selectionner la plage de cellule qui part de "horaires de dégivrages :" jusqu'à "Temps de sécurité (durée maximale du dégivrage)" inclus, puis les mettres en formes |
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
En général, on utilisant la méthode End de l'objet Range (je t'invite à lire la documentation à ce sujet). Par exemple :
Code :
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 14 ![]() |
oui mais je veux pas la derniere ligne vide du tableau
Je veux la prochaine ligne apres la valeur "Horaires de dégivrage :" |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
C'est ce que fais ce que je te propose. Ou alors j'ai mal compris.
Je n'avais pas ouvert ton fichier, donc j'ai mis A1, mais il faut adapter en fonction de la cellule dont tu pars. Et tu peux utiliser Offset si tu veux prendre plusieurs colonnes.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 14 ![]() |
ok mais comment faire pourque ca s'applique uniquement aux cellules avec mon critères ??
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Quel critère ? Essaie de reformuler clairement ce que tu veux faire exactement.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 14 ![]() |
alors je veux que la macro choisissent les cellules contenant "horaires de deg" jusqu'à la prochaine cellule vide et me fasse la mise en forme.....
sachant que j'ai plusieurs fois "horaires de deg" Mon fichier que j'ai uploadé peut t'aider a comprendre ce que je veux |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Sauf qu'il y a une cellule vide sous tes cellules "horaires de deg". Tu veux peut-être aller jusqu'à la prochaine cellule non-vide ?
Dans ce cas, mon code est censé fonctionné, en fait c'est l'équivalent de faire un Ctrl+Flèche quand tu es sur une cellule dans Excel. Ensuite si ton problème est de trouver les cellules "horaires de deg", tu peux utiliser Find.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 14 ![]() |
c'est la fonction find que je galère avec
|
|
|
00
|
|
|
#14 | ||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Ce code te mets tes zones en bleu. A toi d'adapter la mise en forme.
Code :
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
||
|
|
00
|
|
|
#15 | ||
|
Membre Expert
![]() Marcel GALANODéveloppeur informatique Inscription : juillet 2009 Messages : 644 ![]() |
Salut,
zebreloup, Ton code est intéressant. 2 remarques cependant: - Il vaut mieux définir ton champ d'action en partant de la dernière cellule de ta feuille - Il est de bon ton de "vider" les variables affectées aux objets en fin de procédure. Pour ma part, j'avais (à adapter) : Code :
__________________
Bien Cordialement. Marcel Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.![]()
|
||
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Pour ta première remarque, j'avais déjà testé sur de très grandes quantités de données et une grand nombre de Find successifs, nos amis de Microsoft ont été assez intelligent pour ignorer de base les plages vides dans Find, donc ça ne change quasiment rien.
Pour ta seconde remarque, je suis d'accord que c'est une bonne habitude à prendre pour des programmes plus complexes. Après, j'avoue que pour quelque chose d'aussi simple où l'on sait très bien que le Garbage Collector va nous faire ça tout seul comme un grand à la fin de la procédure, j'évite d'alourdir le code. Ça va être plus important dès qu'on aura des objets ActiveX plus complexes ou des formulaires qui restent en mémoire...
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() Marcel GALANODéveloppeur informatique Inscription : juillet 2009 Messages : 644 ![]() |
zebreloup,
Je ne conteste pas le fait que l'absence de ces usages n'affecte pas l'efficacité du code. Ce sont de "bonnes" habitudes à prendre, selon moi. Il ne faut pas oublier que des lecteurs du forum peuvent s'inspirer de ce qui est écrit, et l'intégrer dans d'autres programmes. C'est une question de choix.
__________________
Bien Cordialement. Marcel Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.![]()
|
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 14 ![]() |
Un grand merci pour ce bout de code , ca me va impec
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com