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

Excel Discussion :

Resize qui ne veut rien savoir [XL-2007]


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Valorisation & Transfert de technologies
    Inscrit en
    Juin 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Valorisation & Transfert de technologies

    Informations forums :
    Inscription : Juin 2014
    Messages : 43
    Points : 38
    Points
    38
    Par défaut Resize qui ne veut rien savoir
    Bonjour,

    Je bloque depuis plus d'une heure sur un resize... oui oui !

    Je suis dans une feuille A et je veux sélectionner un Range d'une feuille B voyez dont...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    nbMois = CInt(Worksheets("statSQL").Range("F1").Value)
    Dim range1 As Range
    Dim range2 As Range
    Dim objRange As Range
     
        'range des en-tête de mois
        Set range1 = Worksheets("statSQL").Range("A9:B11").Resize(0, nbMois + 1)
     
        'range des données
        Set rg = Worksheets("statSQL").Range("A9:B11").Resize(0, nbMois)
     
        'range total
        Set objRange = Union(range1, range2)
    J'ai essayé à peu près toutes les combinaisons possibles et imaginables il ne veut rien savoir...

    En passant par Cells
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("statSQL").Range(Worksheets("statSQL").Cells(3, 1)).Resize(0, nbMois + 1).Resize(0, nbMois + 1)
    En deux lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Set range1 = Worksheets("statSQL").Range("A3:B3")
        range1.Resize 0, nbMois
    Ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Set range1 = Worksheets("statSQL").Range("A3:B3")
       range1= range1.Resize(0, nbMois)
    J'avoue mon incompréhension....

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 926
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 926
    Points : 28 916
    Points
    28 916
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Dire que l'on bloque ne donne aucune indication.
    Soit on bloque parce-que l'on ne sait pas comment faire, soit parce-que le système bogue (ce qui est sans aucune doute ce qui arrive vu le paramètre envoyé à la propriété Resize qui en général n'apprécie pas du tout la valeur 0) et alors il y a inévitablement un message d'erreur à une ligne précise.
    C'est justement cela qui nous intéresse pour t'aider. Le n° de l'erreur, le texte qui l'accompagne et à quelle ligne (le N° de la ligne).

    La propriété Resize de l'objet Range doit avoir comme argument un n° compris entre 1 et x pour la ligne comme pour la colonne où si l'on souhaite garder le nombre de ligne ou de colonne initial (la syntaxe est par exemple Resize(, 4)

  3. #3
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Bonjour,

    0 en nombre de lignes ça ne doit pas lui plaire.
    Laissez le paramètre vide pour ne pas préciser de changement de taille sur les lignes.
    D'ailleurs il devrait y avoir une erreur d'exécution, à moins qu'un "on error resume next" ne traine quelque part.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Valorisation & Transfert de technologies
    Inscrit en
    Juin 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Valorisation & Transfert de technologies

    Informations forums :
    Inscription : Juin 2014
    Messages : 43
    Points : 38
    Points
    38
    Par défaut
    Effectivement c'était bien le zéro !
    Le livre avec lequel je m'aide ne précise pas que 0 n'est pas supporté par la méthode, c'est vraiment contre-intuitif.

    Bien que je ne l'ai pas précisé il s'agit de l'erreur d'execution 1004 : erreur définie par l'application ou l'objet.
    Merci à vous deux.

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 926
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 926
    Points : 28 916
    Points
    28 916
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le livre avec lequel je m'aide ne précise pas que 0 n'est pas supporté par la méthode, c'est vraiment contre-intuitif.
    Je suis d'accord que ce n'est pas toujours intuitif mais est-ce logique d'avoir une plage de cellules sans ligne (0) ou sans colonne (0). Une plage d'excel doit avoir au minimum 1 ligne et 1 colonne.
    Tu peux aussi utiliser un argument nommé au lieu d'utiliser un argument vide ainsi tu évites la virgule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Objet.Resize(Columnsize:=5)

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

Discussions similaires

  1. Margin qui ne veulent rien savoir !
    Par Msieurduss dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 21/02/2008, 14h24
  2. Requete OR qui ne ramene rien
    Par Sapience dans le forum Langage SQL
    Réponses: 10
    Dernier message: 14/04/2005, 12h12
  3. procédure stockée qui ne fait rien
    Par trotters213 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 10/03/2005, 20h25
  4. [VB.NET] DataTable.Clone ne veut rien savoir
    Par anthony70 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/12/2004, 19h57
  5. [LG]Programme qui n'affiche rien
    Par ousunas dans le forum Langage
    Réponses: 4
    Dernier message: 17/02/2004, 19h38

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