Exécuter la commande Text en tant que colonne pour toutes les colonnes avec Excel VBA

Lors de l’importation de données à partir d’autres sources, vous devez parfois faire face à des situations dans lesquelles les nombres dans les cellules sont formatés en texte. Le problème se manifeste généralement à un moment où il est impossible de donner un nombre donné à l’un des formats numériques: décimal ou comptable ou pourcentage. Dans la cellule, vous pouvez également voir une balise intelligente vous informant que la cellule est formatée en texte.
Il est relativement facile de résoudre ce problème en sélectionnant Texte sous forme de colonnes dans l’onglet Données du menu. La boîte de dialogue Assistant de conversion de texte en colonne s’ouvre. Pour effectuer une modification, vous n’avez pas besoin de suivre toutes les étapes de l’assistant. Cliquez simplement sur le bouton Terminer.
Il s’agit d’une action assez simple. Le problème est qu’Excel ne peut pas convertir du texte en colonnes pour plusieurs colonnes en même temps. Cela doit être fait pour chacun d’eux séparément. Lorsque vous devez le faire pour de nombreuses colonnes, cela peut être une véritable nuisance.
Voici une macro simple qui vous sauvera les nerfs.
Comment ca marche?
La macro utilise deux variables d’objet de type Range. Ils seront utilisés pour opérer sur les cellules de la plage. Pour activer les cellules individuelles de la plage, l’instruction For Each a été utilisée. Chaque fois que la cellule est activée, sa valeur est réinitialisée. L’effet est le même que lorsque vous utilisez la commande Texte en tant que colonne.

Sub ImporterDonnees()
'Étape 1: Déclarez les variables
Dim MaPlage As Range
Dim MesCellules As Range
'Étape 2: enregistrer la feuille de calcul avant d'apporter des modifications aux cellules
Select Case MsgBox("Les actions ne peuvent pas être annulées. " & "Voulez-vous d'abord enregistrer la feuille de calcul?", vbYesNoCancel)
Case Is = vbYes
ThisWorkbook.Save
Case Is = vbCancel
Exit Sub
End Select
'Étape 3: définition de la plage de cellules
Set MaPlage = Selection
'Étape 4: Démarrage d'une boucle pour la plage
For Each MesCellules In MaPlage
'Étape 5: réinitialisation de la valeur de la cellule
If Not IsEmpty(MesCellules) Then
MesCellules.Value = MesCellules.Value
End If
'Étape 6: passer à la cellule suivante de la plage
Next MesCellules

End Sub

 

1. Dans la première étape, les deux variables objet du type Range sont déclarées – la variable MaPlage stockera l’adresse de la plage entière, tandis que la variable MesCellules stockera les données des cellules calculées successivement de la plage donnée.
2. Lorsque la macro est exécutée, la pile d’annulation sera supprimée. Cela signifie que vous ne pourrez pas annuler les actions effectuées par la macro. Étant donné que la macro modifie réellement les données, il est judicieux d’enregistrer le classeur avant d’exécuter la macro. Cela se déroule ensuite à l’étape deux. Une boîte de message s’affiche, qui propose des options pour enregistrer le classeur. Il propose trois options: Oui, Non et Annuler. Cliquez sur Oui pour enregistrer le classeur et poursuivre la macro. Cliquez sur Annuler pour mettre fin à la macro. Toutefois, en cliquant sur le bouton Non, l’exécution de la macro commencera sans enregistrer le classeur au préalable.
3. À l’étape trois, la plage cible de cellules est transmise à la variable MaPlage. Dans cet exemple, la plage déjà sélectionnée dans la feuille de calcul est sélectionnée. Bien entendu, la variable MaPlage peut facilement être définie sur une plage spécifique, par exemple Range (“A1: Z100”). De même, lorsqu’une plage a un nom. Ensuite, vous pouvez simplement le saisir: Range (“nomdeplage”).
4. À l’étape quatre, une boucle est lancée qui activera tour à tour chaque cellule dans la plage spécifiée.
5. Lorsqu’une cellule est activée, la macro détermine si la cellule est vide en fonction de la propriété IsEmpty. Il s’agit d’améliorer les performances – si la cellule est vide, aucune action n’est effectuée. Vous pouvez ensuite réinitialiser le téléphone portable à sa propre valeur. Cela supprimera également tout formatage inapproprié.
6. À l’étape six, la boucle passe à la cellule suivante. Après avoir activé toutes les cellules de la plage macro, l’opération se termine.
Comment appliquer une macro?
Pour implémenter cette macro, vous pouvez copier et coller son code dans un module standard. pousse
c’est comme ça:
1. Utilisez la combinaison de touches Alt + F11 pour activer Visual Basic Editor.
2. Dans la fenêtre Projet, cliquez avec le bouton droit sur le nom du projet ou de la feuille.
3. Sélectionnez Insérer / Module.
4. Saisissez ou collez le code

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x