IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modifier cellules non vides dans colonne [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Par défaut Modifier cellules non vides dans colonne
    Bonjour a tous,

    J'ai créé une macro pour faire une transformation de nombre pour mettre des points, pour mettre 2 chiffres après la virgule etc...

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Sub ConvertionSDEPA()
    Dim myRange As Range
    Dim Cell As Range
    Set myRange = Range("N2", Range("N2").End(xlDown))
    myRange.NumberFormat = "0.00"
    myRange.Columns.AutoFit
     For Each Cell In myRange
     a = Cell.Text
     Cell.NumberFormat = "@"
     Cell.Value = Replace(a, ",", ".")
    Next Cell
     
    Set myRange = Range("O2", Range("O2").End(xlDown))
    myRange.NumberFormat = "0.00"
    myRange.Columns.AutoFit
     For Each Cell In myRange
     a = Cell.Text
     Cell.NumberFormat = "@"
     Cell.Value = Replace(a, ",", ".")
    Next Cell
     
    Set myRange = Range("P2", Range("P2").End(xlDown))
    myRange.NumberFormat = "0.00"
    myRange.Columns.AutoFit
     For Each Cell In myRange
     a = Cell.Text
     Cell.NumberFormat = "@"
     Cell.Value = Replace(a, ",", ".")
    Next Cell
     
    Set myRange = Range("Z2:AB2", Range("Z2:AB2").End(xlDown))
    myRange.NumberFormat = "0.00"
    myRange.Columns.AutoFit
     For Each Cell In myRange
     a = Cell.Text
     Cell.NumberFormat = "@"
     Cell.Value = Replace(a, ",", ".")
    Next Cell
     
    Set myRange = Range("AC2", Range("AC2").End(xlDown))
    myRange.NumberFormat = "0.00"
    myRange.Columns.AutoFit
     For Each Cell In myRange
     a = Cell.Text
     Cell.NumberFormat = "@"
     Cell.Value = Replace(a, ",", ".")
    Next Cell
     
    Set myRange = Range("AD2:AE2", Range("AD2:AE22").End(xlDown))
    myRange.NumberFormat = "0.000"
    myRange.Columns.AutoFit
     For Each Cell In myRange
     a = Cell.Text
     Cell.NumberFormat = "@"
     Cell.Value = Replace(a, ",", ".")
    Next Cell
     
    End Sub
    J'ai donc essayé de faire la transformation de mes cellules dans certaines colonnes jusqu'a la fin des cellules non vides... Cependant, il y a certaine colonne (ex : colonne O) ou il y a des cellules vides sur la plage de cellule que je dois traiter...

    Donc, ce que je cherche a faire, c'est pour chaque cellule non vide dans la colonne O alors je fais ma transformation

    Dans l'attente de votre réponse.

    Jujudeo

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour,

    Je ne comprends pas trop le but d'une macro pour changer un format de cellule.

    Pq ne pas simplement transformer ton tableau en tableau structuré, incontournable depuis la version 2010 d'office, et de mettre les bons formats directement.

    Si impossible pour x ou y raison, Power query t'offre une solution plus efficace que x boucle, sur y colonne, sur z cellules.

  3. #3
    Membre confirmé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Par défaut
    En résumé, je crée un fichier excel grâce a une première macro. Avec cette première macro, j'exporte également ce fichier excel en fichier CSV.

    J'utilise une deuxième macro que je viens de vous montrer pour faire la transformation de toutes les colonnes que je souhaite modifier dans mon fichier csv.

  4. #4
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    OK, je comprend un peu mieux.

    Si tu as 5 minutes jette un œil sur Google au niveau power query, tu verras que tout ton cheminement de modification de format,... peut se faire très facilement via power query et ton projet n'en sera que plus ergonomique et fiable.

  5. #5
    Membre confirmé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set myRange = Range("O2", Range("O65536").End(xlUp))
    myRange.NumberFormat = "0.00"
    myRange.Columns.AutoFit
     For Each Cell In myRange
     a = Cell.Text
     Cell.NumberFormat = "@"
     Cell.Value = Replace(a, ",", ".")
    Next Cell
    J'ai reussi a trouver. Pour travailler juste sur les cellules pleine de ma colonne, il me fallait cette ligne la "Range("O2", Range("O65536").End(xlUp))"

    Sujet Résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Trouver la ligne d'une cellule non vide dans une colonne
    Par AsktoKnow dans le forum Excel
    Réponses: 11
    Dernier message: 02/07/2018, 09h05
  2. Dernière cellule non vide dans une colonne variable
    Par Mickael44300 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/10/2017, 21h50
  3. Réponses: 3
    Dernier message: 09/10/2016, 23h51
  4. Recherche de cellules non vides dans une colonne
    Par John81 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 05/09/2008, 22h57
  5. Réponses: 5
    Dernier message: 22/02/2008, 19h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo