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-E] UsedRange pour la recherche de la dernière cellule


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [VBA-E] UsedRange pour la recherche de la dernière cellule
    Malgré une lecture attentive des tutoriaux... je n'arrive pas à trouver l'adresse de la dernière cellule en utilisant
    ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Address
    car ça me renvoit tjs comme adresse la dernière cellule qui a été écrite puis effacée.
    Apparement ça ne fait pas la mise à jour malgré le usedrange,

    Merci

  2. #2
    Membre régulier Avatar de doringen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 87
    Points
    87
    Par défaut
    J´ai eu le même problème (la cellule est vide en contenu, mais "contient" toujours un format.
    Ma solution est "force brute": une boucle sur la colonne qui teste le paramêtre IsEmpty pour chaue cellule (si tu ne connais pas la dernière colonne du tableau, tu peux insérer cette boule dans une autre qui balaye les colonnes de A à ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For z = 1 To 1000
            If IsEmpty(Range("a" & z)) = False Then
                compteur = z
            End If
    Next z
    en fin de boucle, z est ton indice de dernière ligne
    inconvénient: cela marche chez moi parce que toutes les cellules de mon tableau sont de toutes facons remplies (par défaut, un "0" ou un "~"), mais si la dernière cellule de ton tableau est vide...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Si tu veux la derniére cellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    wks.UsedRange.Rows.Count
    avec wks ta feuille

    Starec

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par kptn_kvrn
    ça me renvoit tjs comme adresse la dernière cellule qui a été écrite puis effacée.
    Sauver le fichier avant de chercher la dernière cellule...

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Non désolé mais ça ne marche pas même en sauvant le fichier d'abord...
    Reste la méthode de comptage des colonnes... pas terrible mais bon

  6. #6
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Non désolé mais ça ne marche pas même en sauvant le fichier d'abord...
    Tu ne dois enregistrer le fichier qu'après suppression des lignes. Fonctionne aussi bien en version 97 que 2003.
    Ceci dit UsedRange t'indique le nombre de ligne de la plage de données.
    Si tu as une ligne vide dans tes données, il indique la dernière ligne de la plage contenant la cellule active. Très risqué comme méthode.
    Sinon, tu as d'autre syntaxes. Je les reprends toutes (enfin, pas toutes mais les plus simples)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    'Dernière ligne renseignée de la plage contenant la cellule active
        DerniereLigne = ActiveCell.CurrentRegion.End(xlDown).Row
     
    'Dernière ligne avant ligne vide -> Innexacte si ligne vide dans la plage
        DerniereLigne = ActiveSheet.UsedRange.End(xlDown).Row
     
    'La colonne A doit être la plus longue pour donner la dernière ligne renseignée de la feuille
        DerniereLigne = Range("A65535").End(xlUp).Row
     
    'S'arrête à la première ligne vide
        DerniereLigne = Range("A1").End(xlDown).Row
     
    'Indique toute la plage renseignée ou modifiée, en cas de suppression de ligne,
        DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
    'contraint d'enregistrer le fichier après suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        rows(10).delete shift:=xlUp
        ActiveWorkbook.save
        DoEvents 'laisser au fichier le temps de s'enregistrer
        DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
    A+

Discussions similaires

  1. Réponses: 11
    Dernier message: 20/09/2014, 22h07
  2. utiliser * pour une recherche en vba
    Par kromei dans le forum Général VBA
    Réponses: 4
    Dernier message: 09/05/2010, 14h15
  3. [XL-2003] recherche de la dernière cellule non vide d'une plage
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/11/2009, 12h14
  4. Recherche de la dernière cellule non vide d'une colonne
    Par tasse2the dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/04/2009, 09h30
  5. [VBA-E] Utilisation .Find pour une recherche
    Par Larsen21 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/12/2006, 13h18

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