Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Convertir colonne par macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

samimi94

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à convertir une colonne sans passer par le menu Excel mais via une macro car il y a plusieurs onglets concernés, sachant que sur chaque feuille il s'agit du même nom de colonne.

Depuis une application externe j'importe dans Excel mes données mais le format ne me convient pas, il faut que je fasse à chaque fois Données=>Convertir=>Largeur fixe=>Texte, or je souhaiterais automatiser cela à l'ouverture de mon fichier.

Je n'ai pas réussi à l'adapter depuis l'enregistreur de macro.
Ci-joint un exemple, avec la colonne A à convertir sur les Feuilles 1,2 et 3 (dans mon fichier d'origine il s'agira de la colonne AB).

De plus dans cette même colonne je souhaite ensuite mettre le format sur 16 digits quand ce n'est pas déjà le cas.

Ex : apres la conversion j'obtiens par exemple dans une cellule 5678999990 je veux que cela se présente en 0000005678999990

Merci pour l'aide que vous pourrez m'apporter et bon week-end à tous.
 
Dernière édition:
Re : Convertir colonne par macro

Bonjour,

essaye ce code, à adapter en fonction des feuilles à convertir, ainsi que de la colonne :

Code:
Sub Macro2()
Dim i As Byte
For i = 1 To Sheets.Count
    With Sheets(i)
        .Range("A1:A" & .[A65000].End(xlUp).Row).NumberFormat = "0000000000000000"
    End With
Next i
End Sub
 
Re : Convertir colonne par macro

Bonjour,

lors de la conversion il faut laisser standard
ensuite il faut prendre la colonne AB et lui appliqué un format 0000000000000000
( autant de zéro que de digits)

pour executer la macro à l'ouverture

dans l'éditeur VBA copier le code sur thisworkbook avec la propriété Open
 
Dernière modification par un modérateur:
Re : Convertir colonne par macro

Bonjour BHBH,

Merci pour ta réponse.
Je viens de tester ce bout de macro qui fonctionne à merveille sur mon fichier test, cependant lorsque je souhaite l'adapter à mon fichier je bugue un peu.

Dans mon fichier d'origine j'ai déjà une macro à l'ouverture du fichier ou j'ai déjà dans le Workbook Open :

Dim i As integer

A quel endroit je dois insérer ton bout de macro afin qu'il execute ensuite ta macro ?

Dans ma macro j'ai ça :

Code:
For i = 1 To Sheets.Count
If Worksheets(i).Name <> "Feuil1" Then
Worksheets(i).Range("A1").EntireRow.Insert
Worksheets("Feuil1").Rows("1:1").Copy Worksheets(i).Rows("1:1")
Worksheets(i).UsedRange.Columns.AutoFit
End If
Next
Sheets("Feuil1").Columns.AutoFit


Par avance merci.
 
Re : Convertir colonne par macro

Re-,

essaie ainsi :

Code:
Sub Macro2()
For i = 1 To Sheets.Count
    If Worksheets(i).Name <> "Feuil1" Then
        With Worksheets(i)
            .Range("A1").EntireRow.Insert
            Worksheets("Feuil1").Rows("1:1").Copy .Rows("1:1")
            .Range("A2:A" & .[A65000].End(xlUp).Row).NumberFormat = "0000000000000000"
            .UsedRange.Columns.AutoFit
        End With
    End If
Next
Sheets("Feuil1").Columns.AutoFit
End Sub
 
Re : Convertir colonne par macro

Re,

Quelqu'un aurait-il une solution pour que ma conversion de colonne (ligne en bleu dans le code fournit par BHBH) se fasse également sur les autres feuilles du classeur existantes de mon fichier Excel? J'ai beau faire differents raccords soit j'obtiens une erreur à la compilation soit je n'obtiens rien de concret.

Code:
Sub Macro2()
For i = 1 To Sheets.Count
    If Worksheets(i).Name <> "Feuil1" Then
        With Worksheets(i)
            .Range("A1").EntireRow.Insert
            Worksheets("Feuil1").Rows("1:1").Copy .Rows("1:1")
            [COLOR="Blue"].Range("A2:A" & .[A65000].End(xlUp).Row).NumberFormat = "0000000000000000"[/COLOR]
            .UsedRange.Columns.AutoFit
        End With
    End If
Next
Sheets("Feuil1").Columns.AutoFit
End Sub

Merci pour tout.
 
Re : Convertir colonne par macro

Re-,

est-ce que l'insertion de la première ligne se fait bien dans les autres feuilles également?

Si oui, c'est que ton format des nombres n'est pas le bon, et qu'ils sont peut-être en format texte?????
 
Re : Convertir colonne par macro

Re,

Oui l'insertion de la première ligne se fait bien sur chaque feuille.

Ce que je ne comprends pas c'est que la conversion se fait bien sur la dernière feuille mais pas sur les premières.

Pour ce qui est du format c'est exactement le même que ce que j'ai mis dans le fichier test, en fait j'ai fait un copier coller de mon fichier d'origine.

Merci.
 
Re : Convertir colonne par macro

Re-,

Peux-tu envoyer ton fichier réel, avec les 4 feuilles, mais juste la colonne à convertir, sur une dizaine de lignes?

Supprimes tout le reste, mais envoie le fichier "Réel", peut-être un format bizarre?
 
Re : Convertir colonne par macro

Re BHBH

Voici le fichier, j'ai supprimé les données qui se trouvaient dans les colonnes comprises entre A et AF pour des raisons de confidentialités (mais il y a bien des données dans ces colonnes à l'origine), mais la colonne que je souhaite convertir est la colonne AF.

Petite question au risque de paraitre un peu nulle, ça change quoi si les données sont en texte ?

Par avance, merci.
 
Dernière édition:
Re : Convertir colonne par macro

Re-,

Psssst : Sans mot de passe, c'est plus facile......😉

Edit, et j'ai essayé en recopiant tes feuilles dans un autre fichier, cela fonctionne parfaitement....
 
Dernière édition:
Re : Convertir colonne par macro

Désolée pour le mot de passe je pensais l'avoir enregistré sans macro.

Par contre effectivement que chez toi ça fonctionne car je l'ai mis au format EXCEL 🙁 je suis vraiment nulle.

Alors pour revenir au début, j'ai un fichier CSV extrait d'un AS400, que je souhaite mettre au format XLS, le souci c'est que ce fichier contient plus de 100 000 lignes, du coup j'ai un bout de macro qu'on m a aidé à faire grace aux pro d'excel de ce site qui me permet de le mettre sur plusieurs onglets avec mise en forme auto des colonnes.
Dans cette colonne AF je n'obtiens pas mes données sur 16 digits comme tu le vois dans l'exemple.

Je ne sais pas comment t'envoyer un bout du fichier CSV car il contient trop de données confidentielles et sans la macro pour le mettre sur plusieurs onglets je ne peux pas le retoucher car j'ai une erreur au demarrage.

Merci pour ton aide, je vais essayer de voir si je trouve une solution pour t'envoyer le CSV sans données confidentielles.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
21
Affichages
355
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…