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

VB.NET Discussion :

Problème de selection d'une plage


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 91
    Par défaut Problème de selection d'une plage
    Bonjour,

    Je ne comprends pas pourquoi ces lignes de code ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Demande").Range(Sheets("Demande").Cells(1, 1), Sheets("Demande").Cells(466, 12)).Select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Demande").Range("A1:L466").Select
    Je souhaite sélectionner la plage "A1:L466" de la feuille Demande.

    Est-ce que quelqu'un peut m'expliquer d'où vient mon erreur svp?

    Je tourne sous Excel 2003

    Merci d'avance pour vos réponses.

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Bonjour,

    j'ai pas de code sous la mains, mais je crois que c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ' Décalaration d'un range
    Dim MonRange as Microsoft.Office.Interop.Excel.Range
    ' récupération du range
    MonRange  = Sheets("Demande").Range("A1:L466")
    ces lignes de code ne fonctionne pas
    oui tu pourrais nous dire ce que Visual Studio te dit?
    et laisser un peu plus de code... que l'on voie s'il y a une incohérence dans l'utilisation

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    Sheets est un type collection de toutes les feuilles du classeur spécifié ou actif.
    Sheets est aussi une propriété de Workbook prévue pour retourner une collection Sheets représentant toutes les feuilles de ce classeur.
    Elle est en lecture seule.
    On ne peut pas les utiliser directement.

    Exemple d'emploi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            ' Get sheet.
            Dim objSheet As Excel.Worksheet = CType(objWorkbook.Sheets("Feuil1"), Excel.Worksheet)
            ' Get range.
            Dim objRange As Excel.Range
            'récupération du range
            objRange = CType(objSheet.Range("A1:L466"), Excel.Range)
            objRange.Select()
    Avec l'import suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports Microsoft.Office.Interop

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 91
    Par défaut
    Tout d'abord merci pour vos réponses à vous deux.

    hunteshiva : Voici l'erreur :
    "Erreur d'éxecution '1004'
    La méthode Select de la classe Range à échoué
    Et voici un peu plus de code

    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
    Dim feuilDemande 'Définit la feuille du classeur à utiliser
    Dim compteur As Integer 'Définit un compteur de 200 à 1 pour trouver la derniere ligne écrite du tableau
    Dim derniereLigneTableau As Integer 'Définit la dernière ligne du tableau
    Dim Plage
     
    'Setters qui permettent d'initialiser les variables
    Set feuilDemande = Application.Workbooks("test").Worksheets("Demande")
     
    'On recherche la dernière ligne du tableau à récupérer dans le Spreadsheet
    For compteur = 2000 To 1 Step -1
    'Pour trouver la dernière ligne, on vérifie que la colonne A est vide
    If feuilDemande.Cells(compteur, 1).Value <> "" Then
    derniereLigneTableau = compteur
    Exit For 'On arrête la boucle For si on a trouvé, sinon la dernière ligne vaudra toujours 0
    End If
    Next compteur
     
    'Plage = "A1:L" & derniereLigneTableau
    'Sheets("Demande").Activate
    'Range(Plage).Select
    'Selection.Copy
    Sheets("Demande").Range("A1:L466").Select
    Selection.Copy
    Usr_Affiche.Spsheet_Demande.Range("A1").Paste
    chrismonoye : Tu peux me dire comment réaliser un Imports stp? Je ne sais pas comment faire

    En tout cas merci de vous pencher sur mon problème!

  5. #5
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Salut
    comment réaliser un Import
    Il faut que tu ajoute la référence de la DLL (click droit sur ton projet, Ajouter une référence..) et que tu marque Imports Microsoft.Office.Interop en haut de ta classe.

    Cependant je suis tombé sur ce topic qui pourrait s'appliquer à ton cas.. (topic social.msdn)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 91
    Par défaut
    Je n'ai pas ajouter une référence lors d'un click droit sur mon projet.
    Et quand je vais dans Outils => Références, rien ne fais référence à Microsoft.Office.Interop

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 91
    Par défaut
    De toute façon j'ai laissé tombé, maintenant je sélectionne la feuille en l'activant et je prend mon range depuis la feuille activée et ça fonctionne bien!

    Merci pour votre aide à tous quand même!

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

Discussions similaires

  1. Selection d'une plage avec ligne variable
    Par ginkas31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/01/2008, 07h04
  2. Réponses: 1
    Dernier message: 30/07/2007, 19h37
  3. [VBA-E] Selection d'une plage de données problématique
    Par Fab117 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/01/2007, 14h41
  4. Réponses: 1
    Dernier message: 20/07/2006, 17h03
  5. Problème de select sur une date (DATETIME....)
    Par zeldoi5 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/05/2005, 11h19

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