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 :

Valeur d'une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 47
    Par défaut Valeur d'une cellule
    Bonjour,
    Après 4 ans d'arrêt de programmation ma direction me demande la création d'un nouveau fichier... Les souvenirs reviennent vite mais pas tous..

    ci joint un programme qui devrait renvoyer la VALEUR de la dernière cellule non vide de la colonne A.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     With Worksheets("Suivi Admin")
     
              Dim DLig As Integer
              DLig = ActiveSheet.Columns("A").SpecialCells(xlCellTypeLastCell).Value
        MsgBox DLig
     
        End With
    Ce code me renvoit 1 systématiquement, peu importe le remplissage des cellules A1 A2 etc etc...

    Vous savez pourquoi ?


    En vous remerciant par avnance,


    Gaétan

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Parce que la valeur de la dernière cellule de la colonne A de la feuille active est égale à 1

    Pour tester la valeur de la dernière cellule de la colonne A de la feuille Suivi Admin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
    Sub Test()
    Dim VLig As Variant
    Dim DLig As Long
      With Worksheets("Suivi Admin")
        VLig = .Columns("A").SpecialCells(xlCellTypeLastCell).Value
        DLig = .Columns("A").SpecialCells(xlCellTypeLastCell).Row
      End With
      MsgBox "Valeur : " & VLig & vbCr & _
             "Ligne n° : " & DLig
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 47
    Par défaut
    Nom : Capture.PNG
Affichages : 107
Taille : 15,4 Ko

    Merci Patrice !

    As tu une idée de la raison pour laquelle la cellule A46 a une valeur "nul" ?

    En te remerciant

  4. #4
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Il peut y avoir plusieurs réponses,
    le plus simple est de lui demander ce qu'il y a dans la cellule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
    Sub Test()
    Dim cel As Range
      With Worksheets("Suivi Admin")
        Set cel = .Columns("A").SpecialCells(xlCellTypeLastCell)
      End With
      MsgBox "Adresse" & Chr(9) & ": " & cel.Address & vbCr & _
             "Valeur" & Chr(9) & ": " & cel.Value & vbCr & _
             "Type" & Chr(9) & ": " & TypeName(cel.Value) & vbCr & _
             "N° ligne" & Chr(9) & ": " & cel.Row & vbCr & _
             ""
    End Sub

  5. #5
    Membre Expert Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Par défaut
    Les lignes 33 à 46 contiennent quelque chose comme des espaces ou équivalents; la preuve en est que MsgBox donne le n° de ligne 46.

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par Zekraoui_Jakani Voir le message
    Les lignes 33 à 46 contiennent quelque chose comme des espaces ou équivalents; la preuve en est que MsgBox donne le n° de ligne 46.
    On peut seulement affirmer que la dernière cellule, c'est-à-dire la cellule A46 contient quelque chose, les autres sont peut-être vides !!!!

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 47
    Par défaut
    Citation Envoyé par Patrice740 Voir le message
    On peut seulement affirmer que la dernière cellule, c'est-à-dire la cellule A46 contient quelque chose, les autres sont peut-être vides !!!!
    La A46 me semble vraiment vraiment vide...

  8. #8
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par Edge38 Voir le message
    La A46 me semble vraiment vraiment vide...
    Elle est vraiment vide !!!
    C'est un défaut de fonctionnement de xlCellTypeLastCell

    Il y a d'autres méthodes pour trouver la dernière cellule utilisée
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Set cel = .Columns("A").Find("*", , , , , xlPrevious)
    ' ou encore
        Set cel = .Cells(Rows.Count, "A").End(xlUp)

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 47
    Par défaut
    Citation Envoyé par Patrice740 Voir le message
    Bonjour,

    Il peut y avoir plusieurs réponses,
    le plus simple est de lui demander ce qu'il y a dans la cellule :
    Ci dessous les reponses...

    Je ne comprends vraiment pas...


    Adresse :$D$46
    Valeur:
    Type Empty
    N° de Ligne : 46

Discussions similaires

  1. [C#] Attribuer une valeur a une cellule d'un DataGrid
    Par linuxludo dans le forum Windows Forms
    Réponses: 16
    Dernier message: 19/11/2005, 17h42
  2. Affecter la valeur NULL à une cellule d'une table
    Par jacma dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 06/05/2005, 14h43
  3. [VB.NET] Recuperer la valeur d'une cellule d'un DataTable
    Par graphicsxp dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/03/2005, 10h59
  4. recuperer la valeur d une cellule
    Par Invité(e) dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/01/2005, 18h05
  5. [C#] [Automation Word] Récupérer la valeur d'une cellule
    Par Ditch dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/06/2004, 15h57

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