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 :

"Copie" vers le bas en fonction du contenu de la colonne précédente [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2020
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2020
    Messages : 26
    Par défaut "Copie" vers le bas en fonction du contenu de la colonne précédente
    Bonjour à toutes et à tous,

    je cherche dans un tableau la façon de remplir une colonne, en fonction d'une valeur contenue dans la colonne précédente.
    Un visuel étant plus explicite qu'un long discours...
    Nom : Capture.PNG
Affichages : 71
Taille : 9,3 Ko

    Je voudrais que la colonne C, se remplisse de x (ou autre texte ou chiffre) en fonction du contenu de la colonne B, sachant que le contenu de cette colonne B va varier, et ne sera pas toujours affiché par ordre croissant. Sur l'image jointe, le 2 est placé au dessus du 5, mais ce ne sera pas toujours le cas.

    Si vous avez une idée sur la façon de procéder, je suis preneur, parceque malgré de multiples tentatives de macros, je bloque complet. j'ai essayé avec des colonnes intermédiaires, avec des rechercheV, mais rien n'y fait...

    un ENORME MERCI par avance.

    Jeff

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, voilà une macro qui fait le job.
    Je parcours la colonne B à partir de B1 jusque la dernière cellule utilisée.
    Quand je rencontre un chiffre, je mets un "X" dans la cellule adjacente en colonne C et puis autant de "X" vers le bas qu'indiqué par le chiffre.

    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
    Sub InsertX()
    Dim i As Integer
    Dim j As Integer
    Dim X As Integer
    Dim lastRow As Long
     
    lastRow = Cells(Rows.Count, "B").End(xlUp).Row
     
     
    For i = 1 To lastRow
        If Not IsEmpty(Cells(i, "B")) And IsNumeric(Cells(i, "B").Value) Then
            X = Cells(i, "B").Value
            Cells(i, "C").Value = "X"
            For j = i + 1 To i + X
                Cells(j, "C").Value = "X"
            Next j
     
        End If
    Next i
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2020
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2020
    Messages : 26
    Par défaut
    Citation Envoyé par Franc Voir le message
    Bonjour, voilà une macro qui fait le job.
    Je parcours la colonne B à partir de B1 jusque la dernière cellule utilisée.
    Quand je rencontre un chiffre, je mets un "X" dans la cellule adjacente en colonne C et puis autant de "X" vers le bas qu'indiqué par le chiffre.

    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
    Sub InsertX()
    Dim i As Integer
    Dim j As Integer
    Dim X As Integer
    Dim lastRow As Long
     
    lastRow = Cells(Rows.Count, "B").End(xlUp).Row
     
     
    For i = 1 To lastRow
        If Not IsEmpty(Cells(i, "B")) And IsNumeric(Cells(i, "B").Value) Then
            X = Cells(i, "B").Value
            Cells(i, "C").Value = "X"
            For j = i + 1 To i + X
                Cells(j, "C").Value = "X"
            Next j
     
        End If
    Next i
     
    End Sub


    Whaou !!!! GENIAAAAAAAAL !!!!!!!!!

    Un ENOOOORME MERCI Franc, ça fonctionne NICKEL !!!! il me reste plus qu'à étudier chaque ligne de la macro ;-) mais c'est VRAIMENT TOP !!!!
    Encore merciiiii.


    Jeff

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

Discussions similaires

  1. Exporter lignes d'un onglet vers un autre en fonction du contenu d'une cellule
    Par Philippe MI dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/09/2018, 19h46
  2. Créer un onglet en fonction du contenu d'une colonne
    Par pouet35 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/04/2011, 21h45
  3. Réponses: 4
    Dernier message: 10/11/2009, 15h09
  4. Réponses: 4
    Dernier message: 12/08/2008, 08h47

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