Bonjour à tous,
J'ai un complément xlam pour de la gestion de texte dans les cellules d'une plage.
Ce complément très succin permet plusieurs actions sur les cellules de la plage sélectionnée :
- Passer le sélection en Majuscule
- Passer la sélection en minuscule
- Réduire (fonction VB Trim) la sélection
- Ajouter un suffixe sur la sélection
- Ajouter un préfixe sur la sélection
J'ai inclus un fichier XML pour qu'un onglet spécifique soit ajouté au ruban lors de l'activation du complément.
Le mécanisme des 5 fonctions est quasi identique :
- récupération des cellules visibles de la sélection
- [InputBox pour saisir le suffixe ou le préfixe]
- boucle sur toutes les cellules
- action sur chaque cellule
Je vous présente le code de la fonction AjouterPréfixe et la fonction Callback associée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub AjouterPrefixe(ByVal objSelection As Range) Dim objCible As Range, objCell As Range, Prefixe Application.ScreenUpdating = False If objSelection Is Nothing Then GoTo fin Prefixe = Application.InputBox(prompt:="Entrez un préfixe", Type:=2) If Prefixe = vbNullString Then GoTo fin Set objCible = objSelection.SpecialCells(xlCellTypeVisible) For Each objCell In objCible.Cells objCell.Value = Prefixe & objCell.Value Next fin: Set objCible = Nothing Application.ScreenUpdating = True End SubUne fonction Callback est placé dans le groupe contenant les boutons du ruban pour le masquer si aucun classeur n'est ouvert.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 'Callback for btAddPrefixe.onAction Sub btAddPrefix_onAction(control As IRibbonControl) Call mfeatures.AjouterPrefixe(Selection) End Sub
La ligne :
n'est donc pas nécessaire car objSelection est toujours la sélection (donc jamais vide sauf si aucun classeur n'est ouvert) mais je préfère la garder.
Code : Sélectionner tout - Visualiser dans une fenêtre à part If objSelection Is Nothing Then GoTo fin
Voilà pour le contexte. Vos critiques sont les bienvenues.
Ma question est la suivante :
Si la sélection comporte dans cellules fusionnées. En bouclant comme je le fais, je passe plusieurs fois sur la même cellule.
Comment éviter de passer plusieurs fois sur une cellule fusionnée ?
Merci d'avance
Partager