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 :

copier cellules avec variable randomize


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Coordinateur service technique
    Inscrit en
    Novembre 2021
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Coordinateur service technique

    Informations forums :
    Inscription : Novembre 2021
    Messages : 152
    Points : 143
    Points
    143
    Par défaut copier cellules avec variable randomize
    Bonjour,

    Alors voilà: je bidouille un classeur pour faire un tirage au sort. Sur ma worksheet "chapeau", j'ai mes billets, sur "tirage" mes lots. Je veux que lorsque je suis sur la case à coté du lot dans "tirage", au clic sur le boutontir, le vba aille me chercher un ensemble de cellule au hasard sur "chapeau". Je suis à ce stade:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub boutontir_Click()
    Dim n As Integer
    Dim x As Integer
    Dim r As Integer
     
    r = ActiveCell.Row
    n = Application.WorksheetFunction.CountA(Worksheets("chapeau").Range("A:A"))  'pour limiter les valeurs de randomize à la plage d'existant
     
    Randomize
    x = Int(n * Rnd) + 2 'ça ça marche, en testant une msgbox je vois un nombre aléatoire dans la plage voulue
     
    Worksheets("chapeau").Range(Cells(x, 1), Cells(x, 6)).Copy Destination:=Worksheets("tirage").Range(Cells(r, 3), Cells(r, 8)) 'c'est là que ça coince
     
    End Sub
    Mais "erreur 100"; j'ai fait différents essais au niveau des range source et cible ("Ax:Fx" ou "ActiveCell"). Mais rien ne marche. Serait-ce la méthode copy destination qui est en cause? Ou le fait de ne pas ordonner convenablement les étapes?

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 182
    Points : 5 514
    Points
    5 514
    Par défaut
    Bonjour,

    En ligne 12, il faut absolument indiquer où se trouvent les Cells:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Worksheets("chapeau").Range(Worksheets("chapeau").Cells(x, 1), Worksheets("chapeau").Cells(x, 6)).Copy Destination:=Worksheets("tirage").Cells(r, 3)
    ou en utilisant l'instruction With:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        With Worksheets("chapeau")
            .Range(.Cells(x, 1), .Cells(x, 6)).Copy Cells(r, 3) 
        End With
    Il faut aussi déclarer n, x et r comme étant Long.
    Cordialement.

  3. #3
    Membre habitué
    Homme Profil pro
    Coordinateur service technique
    Inscrit en
    Novembre 2021
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Coordinateur service technique

    Informations forums :
    Inscription : Novembre 2021
    Messages : 152
    Points : 143
    Points
    143
    Par défaut Merci!!!
    Super ! Ça marche. j'étais persuadé qu'en se plaçant sur worksheets("feuille qu'on vise"), toutes les commandes suivantes utilisaient alors cette worksheet... J'ai choisi l'option sans l'instruction with.

    Merci encore!

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

Discussions similaires

  1. Définir plusieurs plages de cellules avec variable
    Par sophie123 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/06/2017, 15h42
  2. Syntaxe pour bloquer une cellule avec variable
    Par Daniela_ dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/09/2013, 17h04
  3. [XL-2007] Copier cellule avec fonction si feuille existe
    Par youlig dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/03/2013, 16h52
  4. Pb pour copier cellules avec fonctions
    Par chisutufu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/09/2009, 11h40
  5. VBA - Copier cellules avec formules
    Par Alecine dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/05/2008, 14h41

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