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 :

Recopie infini sur une colonne [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 352
    Par défaut Recopie infini sur une colonne
    Bonjour le forum
    J' ai commencé une macro qui fonctionne pour la recopie de donnée jusqu' à la premiere ligne non vide, mais je n' arrive pas à la transformer afin qu' elle balaye la colonne et refasse cette copie en répétitif.
    Ci joint la macro et une image qui permettra de mieux comprendre ce que j' aimerais réalisé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Recopie()
    Dim cell As Variant
        Range([B3], [B65536].End(xlUp)).Select
        For Each cell In Selection
            If cell.Value = "" Then
                cell.Value = cell.Offset(-1, 0).Value
            End If
        Next cell
     End Sub
    Merci d' avance pour toute aide
    Aladin
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Recopie()
        Dim Res As Variant, C As Range
        For Each C In Range([D3], Cells(Rows.Count, 4).End(xlUp))
            If C.Offset(, -3) <> "" Then
                Res = C.Value
            Else
                C.Offset(, -3) = Res
            End If
        Next C
    End Sub
    [edit] je suis parti de l'idée que "RecordingId" était en A1. Si ce n'est pas le cas, adapte la macro.

  3. #3
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Mal expliqué...

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 352
    Par défaut
    Bonjour le forum
    Merci Daniel pour ta réponse, j' ai un blocage sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If C.Offset(, -3) <> "" Then
    Pour EngueEngue, Comment mal expliqué as tu regardé l' image, il dit de recopie 328 jusqu' a la premiere ligne vide en considerant qu' il y a un seul 328 et ensuite de reprendre 329 et de faire pareil
    Encore une autre explication
    Dans la colonne B
    En parcourant la colonne chaque chiffre trouvé est recopie jusqu' a la premiere ligne non vide

    Aladin

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour, Aladin,

    toujours pas clair le besoin même en regardant l'image ...


    Citation Envoyé par Aladin
    afin qu' elle balaye la colonne et refasse cette copie en répétitif.

    cela veut dire quoi "en répétitif" ?

    ton code ne doit-il pas être exécuté qu'une seule fois sur ta colonne B ?

    comment t'arrête-tu pour le "chiffre" le plus bas ?

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 352
    Par défaut
    Bonjour bbil et le forum
    Possible que cela ne soit pas clair clair je vais essayer de répondre à tes questions ,

    1) En mettant répétitif , c' est juste pour la copie
    2) Le code est exécuté une seule fois
    3) comment t'arrête-tu pour le "chiffre" le plus bas ? Je n' y avais pas pensé car je m' étais focalisé sur la colonne B

    Voila une autre explication qui j' esperer sera plus clair


    1) Colonne B - Cellule B5 Chiffre 328

    Entre le cellule B5 et la cellule B10 les autres sont vides

    la cellule B11 est occupé par le chiffre 329

    on copie le chiffre 328 de B5 jusqu' a B10

    2) On passe à B11 et on copie 329 juqu' a la dernierer ligne rempli de la colonne E

    Aladin

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Si "Recording ID" est en colonne B :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Recopie()
        Dim Res As Variant, C As Range
        For Each C In Range([E3], Cells(Rows.Count, 5).End(xlUp))
            If C.Offset(, -3) <> "" Then
                Res = C.Value
            Else
                C.Offset(, -3) = Res
            End If
        Next C
    End Sub

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

Discussions similaires

  1. [SYBASE ASE] Rajouter une contrainte null sur une colonne
    Par Little_Goldo dans le forum Sybase
    Réponses: 1
    Dernier message: 09/02/2005, 11h48
  2. Comment trier une DBGRID en cliquant sur une colonne
    Par sessime dans le forum Bases de données
    Réponses: 8
    Dernier message: 09/10/2004, 17h18
  3. Contraite NULL sur une colonne en fonction d'une autre colon
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2004, 20h29
  4. Trigger sur une colonne ?
    Par hpalpha dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/03/2004, 15h16
  5. Check sur une colonne de table "en cours"
    Par in dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/07/2003, 10h47

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