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 impossible de selectionner une plage de cellules variables [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 74
    Par défaut VBA impossible de selectionner une plage de cellules variables
    Bonjour,

    Je souhaite faire une sélectionner une plage de cellules variables. J'utilise donc des "Cells" à l’intérieur d'un "Range" mais mon code ne semble pas être bien déclaré car au moment d’exécuter cette instruction, j'obtiens l'erreur 1004.

    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
    22
    23
    24
    25
     
        Dim cpt1 As Integer
        Dim cpt2 As Integer
        Dim ptr As Integer
        Dim fin As Integer
        Dim ean2 As Double
        Dim DatFvi As Workbook
        Dim plage As Range
     
         Set DatFvi = GetObject("C:\Users\kguesmia\Documents\Casse du Havre\Foto Infolog.xls")
     
        cpt1 = 4
        cpt2 = 15823
        ptr = 25 ' Colonne à partir de laquelle on écrit
     
         Do
             Cells(3, ptr).Value = "DateFvie"
             Cells(3, ptr + 1).Value = "Stock"
             ean2 = DatFvi.Sheets(1).Range("C" & cpt2).Value
     
             If Range("P" & cpt1).Value = ean2 Then
                fin = DatFvi.Sheets(1).Cells.SpecialCells(xlCellTypeLastCell).Column    'dernière colonne remplie du tableau
                Set plage = DatFvi.Sheets(1).Range(Cells(cpt2, 31), Cells(cpt2, fin))
                plage.Select
                Selection.Copy

    Pourriez-vous m'indiquer ce qu'il ne va pas svp.

    Merci.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    [QUOTE=kimou75;8539034]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         Set DatFvi = GetObject("C:\Users\kguesmia\Documents\Casse du Havre\Foto Infolog.xls")
    Il est plus simple et plus propre de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         Set DatFvi = Worksbooks.Open("C:\Users\kguesmia\Documents\Casse du Havre\Foto Infolog.xls")
    Le GetObject est plutôt réservé à l'ouverture d'objet utilisant une applications autres que Excel.


    Je suppose que ton problème vient de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                Set plage = DatFvi.Sheets(1).Range(Cells(cpt2, 31), Cells(cpt2, fin))
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                Set plage = DatFvi.Sheets(1).Range(DatFvi.Sheets(1).Cells(cpt2, 31), DatFvi.Sheets(1).Cells(cpt2, fin))
    Si ça ne marche toujours pas, regarde le contenu de ta variable fin.


    Et plutôt que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                plage.Select
                Selection.Copy
    Tu devrais écrire :
    C'est plus simple, plus propre et l'exécution est plus rapide.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 74
    Par défaut
    Génial ! merci Menhir !

    C'est effectivement le fait de ne pas avoir déclaré mes Cells à la feuille externe qui posait problème.

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

Discussions similaires

  1. comment selectionner une plages de cellule?
    Par potters dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/05/2007, 12h28
  2. [VBA-E]selectionner une plage de cellules
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 07/05/2007, 10h50
  3. Réponses: 2
    Dernier message: 17/12/2006, 18h17
  4. Réponses: 2
    Dernier message: 27/09/2006, 19h41
  5. [VBA-E] Image d'une plage de cellule
    Par flogreg dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/07/2004, 12h30

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