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 :

Moyen le plus rapide de remplir les cellules d'une colonne à partir d'une autre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut Moyen le plus rapide de remplir les cellules d'une colonne à partir d'une autre
    Bonjour,
    Je souhaiterais, à partir de la colonne composée comme suit: Pierre; X; X; Jean; X; X; Michel....remplir la colonne comme suit: Pierre; Jean; Michel.....

    Pour l'instant, j'utilise:


    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
     
    Set Plaje = Sheets("P").Range("K2:K" & DerligSrce)
     
    For Each c In Plaje
     
    Application.StatusBar = c.Row & "/" & Sheets("P").Range("A200000").End(xlUp).Row
     
    Application.ScreenUpdating = False
     
    If c.Value <> "X" Then
     
    Sheets("P").Range("O200000").End(xlUp).Offset(1, 0).Value = c.Value
     
    End If
     
    Next c
     
    Application.ScreenUpdating = False
    Dans un gros fichier cette procédure me paraît très lente, existe-t-il un moyen plus rapide?


    Merci d'avance

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Utilise un filtre avec comme critère <>X
    Copie en une seule fois les éléments filtrés

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Dans le fichier j'ai une fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Public Function Concatener_Matrice(ByVal Matrice As Variant, separateur As String) As String
        Dim c As Variant
        Application.Volatile
        For Each c In Matrice
           Concatener_Matrice = Concatener_Matrice & c & separateur
     
        Next
        If Len(Concatener_Matrice) > 0 Then
            Concatener_Matrice = Left(Concatener_Matrice, Len(Concatener_Matrice) - Len(separateur))
        End If
    End Function
    Qui se déclenche à la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("P").Range("O200000").End(xlUp).Offset(1, 0).Value = c.Value
    Et qui le fait d'ailleurs dans d'autres codes du fichier.
    Elle m'est très utile mais pas là.....

Discussions similaires

  1. Y-a-t-il plus rapide pour enlever les accents ?
    Par Bruno13 dans le forum Langage
    Réponses: 48
    Dernier message: 12/05/2023, 11h24
  2. Réponses: 4
    Dernier message: 20/11/2014, 20h58
  3. Réponses: 2
    Dernier message: 31/12/2012, 19h21
  4. Comment remplir les champs d'une autre application ?
    Par rico32fr dans le forum C++Builder
    Réponses: 6
    Dernier message: 19/06/2006, 08h54
  5. Remplir les cellules Excel avec des variables VB
    Par rupeni dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/11/2005, 09h31

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