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 :

"Problèmes multiples avec Range("A1").SpecialCells(xlCellTypeLastCell).Row"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Currahee
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 157
    Par défaut "Problèmes multiples avec Range("A1").SpecialCells(xlCellTypeLastCell).Row"
    Citation Envoyé par ouskel'n'or Voir le message

    Range(...).SpecialCells(xlCellTypeLastCell)
    S'il existe ou non des lignes vides dans dans la feuille, donne la dernière ligne absolue de la feuille
    Attention : Si des lignes sont supprimées dans la plage, enregistrer le fichier pour avoir le réel N° de la dernière ligne (idem pour les colonnes supprimées)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
    Range(...).SpecialCells(xlCellTypeLastCell).address
    Donne l'adresse absolue de la dernière cellule renseignée de la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        AdresseAbsolue = Range("A1").SpecialCells(xlCellTypeLastCell).address

    Ces deux "astuces" ne sont guère claire pour moi Le périmètre d'action reste la plage et non la feuille ???

    Si je reprends les exemples Range("A1").SpecialCells(xlCellTypeLastCell).Row = 1 et Range("A1").SpecialCells(xlCellTypeLastCell).Adress = $A$1 peu importe ce qu'il y a dans la feuille ???

  2. #2
    Membre confirmé Avatar de Currahee
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 157
    Par défaut
    Citation Envoyé par Currahee Voir le message
    Ces deux "astuces" ne sont guère claire pour moi Le périmètre d'action reste la plage et non la feuille ???

    Si je reprends les exemples Range("A1").SpecialCells(xlCellTypeLastCell).Row = 1 et Range("A1").SpecialCells(xlCellTypeLastCell).Adress = $A$1 peu importe ce qu'il y a dans la feuille ???
    J'ai pigé...

    Faut rajouter pour être clair la feuille sur laquelle on agit, ce ne doit pas être implicite :
    ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
    Worksheets("Feuil1").Range("A1").SpecialCells(xlCellTypeLastCell).Row

    Là ça marche

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    C'est clair que si tu cherches la dernière ligne renseignées "d'une feuille de calculs", tu dois au minimum appliquer le code à "la" feuille de calculs concernée
    Allez, c'est mieux en le disant pour les distraits

  4. #4
    Membre confirmé Avatar de Currahee
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 157
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    C'est clair que si tu cherches la dernière ligne renseignées "d'une feuille de calculs", tu dois au minimum appliquer le code à "la" feuille de calculs concernée
    Allez, c'est mieux en le disant pour les distraits
    Sauf que j'ai dit que ça marchait après avoir testé sur un nouveau classeur excel en remplissant 2-3 cases au hasard.

    Mais dans le prog ou je voulais vraiment trouver ma dernière ligne, ces codes ne fonctionnent pas...

    Il me donnent le numéro de la dernière ligne visible à l'écran quand je descends à fond avec la barre de défilement vertical (sans toucher à la flèche "vers le bas" associée à cette barre).

    J'ai imaginé qu'il y avait peut-être une valeur que je ne voyais pas sur ces lignes, du coup ma feuille ne contenant qu'un tableau, j'ai supprimmé toutes les lignes en dessous du tableau sans succès. Je ne récupère toujours pas le bon numéro de ligne...

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    As-tu bien tout lu ?
    Citation Envoyé par L'exemple dit : "Attention :"
    Si des lignes sont supprimées dans la plage, enregistrer le fichier pour avoir le réel N° de la dernière ligne (idem pour les colonnes supprimées)
    ... non, t'as pas tout lu

  6. #6
    Membre confirmé Avatar de Currahee
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 157
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    As-tu bien tout lu ?
    ... non, t'as pas tout lu
    Si j'ai tout lu, et même après suppression des lignes + enregistrement, cela ne fonctionne pas...

    Par contre :

    Si j'enleve tout le code non en rapport avec le sujet, et toutes les feuilles de mon classeur pour ne garder qu'une feuille avec mon tableau + le code pour calculer ma dernière ligne, et bien...

    Ca ne marche toujours pas... Je dirai même plus, une fois sur deux excel plante et se ferme ("voulez-vous envoyer le rapport d'erreur.. etc...")

    MAIS si maintenant je crée un NOUVEAU classeur, que je copie ma feuille à l'intérieur et que j'importe les deux modules avec les 5-6 pauvres lignes de code qu'ils contiennent, sans faire aucune modif ni au code, ni à la feuille copiée, j'obtiens un classeur strictement identique au précédent qui plantait, et là ça fonctionne, j'obtiens bien la dernière ligne recherchée...

    CONCLUSION : Mon fichier initial semble corrompu quelque part... Mon classeur sert à la fois de prog et de bdd (ok c'est pas bien...), et il subit donc 4 à 5 enregistrements par jour depuis 3 mois... Ceci explique peut-être cela question:

Discussions similaires

  1. Problème Like avec Range
    Par NassMcN dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/07/2013, 11h15
  2. Réponses: 4
    Dernier message: 06/02/2013, 10h34
  3. [Écran] Problèmes multiples avec plusieurs écrans
    Par Truelle dans le forum Périphériques
    Réponses: 1
    Dernier message: 13/07/2012, 10h10

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