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 :

[VBA]Copier le contenu d'une cellule x fois selon x


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [VBA]Copier le contenu d'une cellule x fois selon x
    Bonjour,

    je n'arrive pas à trouver comment faire ceci:

    dans une colonne AA, j'ai des cellules avec des chiffres: 1, 2, 3, 4 etc...
    dans une colonne AL, j'ai des cellules avec du texte (chaines de caractères): FT Nice/06246702-NICE RIQUIER/Etage 2/BUR13 etc...

    J'aimerai copier le contenu de la cellule AL4 dans la colonne AP x fois selon le nombre contenu dans la cellule AA4.
    Ex.:
    AA4 = 3 et AL4 = FT Nice/06246702-NICE RIQUIER/Etage 2/BUR13

    le résultat doit etre:
    AP4 = FT Nice/06246702-NICE RIQUIER/Etage 2/BUR13
    AP5 = FT Nice/06246702-NICE RIQUIER/Etage 2/BUR13
    AP6 = FT Nice/06246702-NICE RIQUIER/Etage 2/BUR13

    et ainsi de suite pour les autres lignes....
    Si AA5 = 2 et AL5 = FT Nice/06246702-NICE RIQUIER/Etage 2/BUR14

    il me faut:
    AP7 = FT Nice/06246702-NICE RIQUIER/Etage 2/BUR14
    AP8 = FT Nice/06246702-NICE RIQUIER/Etage 2/BUR14
    etc...

    J'espère avoir été assez clair....

    Je dois le faire pour plus de 2800 lignes alors si il existe une solution, ca me ferait gagner beaucoup de temps...

    Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Avec une macro peut etre ?

    mais il faut la coder sous VBa

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,

    Ci dessous macro proposée; j'ai considéré que tu commencais en ligne 1

    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
    Sub copier_AP()
    Dim cptrA As Integer, derlig As Integer, cptrB As Integer, lig As Integer
     
    Application.screenupdating= false
    'dernière ligne occcupée AL
    derlig = Range("AL3000").End(xlUp).Row
     
    'boucle générale début en ligne1 (à adapter)
    For cptrA = 1 To derlig
    'dernière ligne occcupée AP
    lig = Range("AP3000").End(xlUp).Row
        'valeur colonne AA
        nbre = Cells(cptrA, 27)
        For cptrB = 1 To nbre
            Cells(lig + cptrB, 42) = Cells(cptrA, 38)
        Next
    Next
     
    Application.screenupdating= true
    End Sub
    En espérant que...
    Michel
    Michel_M

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour Michel,

    merci du coup de main seulement il y a une erreur dans ta macro à cette endroit:

    For cptrB = 1 To nbre

    "incompatibilité de type" ....

    Je n'y connais pas grand chose en programmation mais "nbre" n'a pas été défini en début de programme, je l'ai donc défini en "integer" et le problème s'est déplacé à un autre niveau:

    nbre = Cells(cptrA, 27)

    "incompatibilité de type" ...

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Bonjour fixou,

    nbre est un integer et Cells(cptrA, 27) est un quelque chose qui depend de l'humeur d'excel (souvent variant, parfois string ou double). D'ou ton probleme.

    Tu peux faire nbre = CInt(Cells(cptrA, 27).Value)

    Cela force la conversion en Integer. Si les valeurs depassent 32000 il faut utiliser un type Long (qui veut dire Long Integer) et convertir avec CLng().

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Tout simplement génial...
    Merci à tous pour votre aide.

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 116
    Points
    1 116
    Par défaut
    Re, bonjour tonton Fred

    Chez moi cela marchait

    Est tu sûr que dans la colonne AA tu as des "vrais" nombres et non des textes (dans la barre des formules, regarde si le nombre n'est pas précédé d'une apostrophe) ?
    Cela arrive souvent lorsque ces données numériques sont importées du web ou d'une base de données....

    Tenez moi au courant, d'avance merci

    Michel
    Michel_M

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Voila un copier/coller du début de la colonne ou ce trouve ces nombres.

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

Discussions similaires

  1. [XL-2010] Copier le contenu d'une ligne x fois selon x
    Par bjou27 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/10/2014, 16h43
  2. Copier le contenu d'une cellule avec suivie en cas de changement
    Par geeksideofme dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/04/2007, 17h21
  3. Copier le contenu d'une cellule dans une variable sous excel
    Par franckB dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/04/2007, 19h54
  4. [VBA-E]Copier le contenu d'une cellule vers une autre
    Par idir.17 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 26/03/2007, 16h50
  5. [VBA]Copier le contenu d'une cellule d'un autre classeur
    Par dudu59 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/02/2006, 17h08

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