| ||||||||
Astucien | Hello à tous. (et bonne année a vous)
Dans excel je cherche à faire un traitement sur plusieurs cellules contiguës a l'aide d'un bouton (donc VBA) Je cherche a remplacer " - " (espace trait espace) par un simple espace " "
Exemple : 11 - 10 - 6 - 9 - 2 - 5 devient => 11 10 6 9 2 5 Tous ces chiffres sont placés dans une seule cellule et je ne peux pas faire autrement.... mais il y a plusieurs cellules du même type... - j'ai réussi a faire le traitement pour une cellule.. Private Sub Bt1_Click() mon petit pb est que je souhaiterais traiter plusieurs cellules contigües d'un coup.. pour cela, dans la feuille excel je sélectionne les cellules contigües (plusieurs cellules) et ensuite je souhaiterais cliquer sur le bouton qui devrait faire le traitement.. mais là... je ne vois pas comment faire ... comment récupérer la valeur des "ranges" sélectionnées et comment y appliquer le traitement... - je vois l'algorithme mais pour le traduire en vba ???? 'principe en vba récupérer cette sélection ensuite '2) pour chaque cellule Je vous joins le fichier .. https://www.cjoint.com/c/LAmqtfhaCKT Merci de votre aide à tous. Pas évident le VBA ..... Modifié par Jumpty le 12/01/2022 17:19 | |||||||
Publicité | ||||||||
| ||||||||
![]() ![]() | Bonjour Pourquoi veux-tu passer par du VBA ? Si tu sélectionnes la zone voulue, que tu tapes ctrl-f, et que tu remplaces "espace-tiret-espace" par"espace", ça ne marche pas ? @ + | |||||||
Astucien | Comme te le dis Poussebois, Ctrl + F est bien le plus simple... | |||||||
Astucien | ce fichier est un exemple..... il y a plein d'autres choses dans la page... qui ne doit pas etre modifié .... | |||||||
Astucien ![]() | Bonjour Jumpty, Voici un petit bout de code VBA qui te permet de récupérer une à une les adresses des cellules sélectionnées sur la feuille active. Une fois que tu connais l'adresse de la cellule, à toi d'appliquer ton traitement. Il faudra bien sûr supprimer ou mettre en commentaire la ligne MsgBox qui n'est là que pour tester différents Range. Private Sub CellulesDeLaSélection()
| |||||||
Astucien | Re Debrief,
Ton code s'applique à toutes les cellules de la feuille entière....... ce n'est pas exactement ce que je souhaite.. - Voici ce que je souhaiterais : sélectionner par exemple 2 cellules contigües ou 3 ou 4 puis appliquer le code => code à appliquer uniquement sur ces 2 3 ou 4 cellules et pas les autres.. - il n'y a pas de code qui permet de récupérer la zone sélectionnée et ensuite appliquer le code ?
| |||||||
Astucien ![]() | Jumpty a écrit : C'est exactement ce que je t'ai proposé avec mon code !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |||||||
Astucien ![]() | D'ailleurs j'ai essayé sur ton classeur et ça fonctionne très bien en fonction de la sélection que l'on a effectuée : | |||||||
Astucien ![]() | Autre exemple avec une sélection différente : | |||||||
Astucien ![]() | Un indice : il n'y a qu'une seule ligne de code à ajouter au code que j'ai proposé ici, pour que ça fonctionne. Longueur de la ligne de code : 38 caractères. Faut juste trouver les 38 bons caractères. Modifié par apolinaire le 13/01/2022 15:02 | |||||||
Astucien | Merci debrief, ton code marche bien . pour info pourquoi cette ligne "If VarType(Cellule.Value) = vbString" ?
Pour info apolinaire. quelle est cette ligne de code ?
Modifié par Jumpty le 13/01/2022 16:04 | |||||||
Astucien ![]() | Jumpty a écrit : Enfin tu daignes te manifester. Mais putain de bordel de merde, quand vous ne comprenez pas (toi et les autres), dites-le ! Il n'y a aucune honte à ne pas comprendre. Ceux qui essaient d'aider le font après un travail personnel, qui demande de l'investissement, qu'ils offrent gracieusement à ceux qui crient au secours et en retour, plus de son plus d'image parce que la gars, ben... il a pas compris. Bon, je te donne la solution. Mais c'est la dernière fois que je me fais baiser sur ce forum. La prochaine fois, les demandeurs iront se faire voir s'ils ne se manifestent pas suite à mes réponses. Private Sub CellulesDeLaSélection() NB : comme pour le code de Debrief (que j'ai testé), les sélections peuvent être disjointes. | |||||||
Astucien | Re, apolinaire dsl de cette incompréhension je faisais des tests ... merci à vous deux. cela va m'aider à comprendre un peu mieux le vba. car pas évident à appréhender Merci encore de tout votre aide
| |||||||
Petit astucien ![]() | Dim c As Range Fonctionne sur toutes les cellules selectionnées, ligne colonne, on n'en n'a pas besoin. Pourquoi chercher compliqué quand on peut faire simple ? | |||||||
Petit astucien ![]() | Salut Debrief, Ta proposition de 14h58 hier était pour moi la plus pertinente et la plus simple, dans la question posée par Jumpty, il me semblait qu'il allait travailler sur une selection de cellules, parce que s'il voulait faire son opération sur une feuille, le plus simple est la commande "Remplacer". Je vois qu'il y a pas mal de spécialistes de VBA Excel, je reviendrai sûrement vers vous un de ces jours. Merci à tous | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | |||||||||||||||
|