Aide sur cellule

Résolu
eeuuhh Messages postés 31 Statut Membre -  
eeuuhh Messages postés 31 Statut Membre -
Salut,

Comme je suis débutant je voudrais savoir si il existe une fonction, une macro qui retourne les coordonnées (donc n°colonne et n° ligne) d'une case (préalablement sélectionné) ?

De plus (j'espere que ca ne va pas etre trop vous demandé), quel est la fonction pour lire le contenu d'une cellule pour pouvoir l'analyser par la suite.

J'utilise Miscrosoft Excel 2003

MERCI pour tout.
Configuration: Windows XP
Internet Explorer 7.0

11 réponses

  1. zavenger Messages postés 817 Statut Membre 161
     
    salut

    activecell.row
    activecell.column
    activecell.value

    te renvoie la ligne, colonne et valeur de la cellue courante

    Tu peux remplacer activecell par Range("B3") ou alors Cells(3,2) pour avoir les donnees de la cellule B3

    Mais une fois que tu est dans l'editeur VB, n'hesite pas a faire F1 pouir une aide contextuellle
    0
  2. eeuuhh Messages postés 31 Statut Membre
     
    D'accord merci zaverger. Est ce tu connai une fonction pour lire le contenue d'une cellule, enfin une macro pour qu'elle sache ce qu'il y a dans la macro. Et par hasard sait tu comment écrire dans une cellule.

    Voila ^^

    Merci bien !!
    0
    1. zavenger Messages postés 817 Statut Membre 161
       
      Desole je ne comprends pas ta question ... Plus explicite peut etre?
      0
  3. eeuuhh Messages postés 31 Statut Membre
     
    OK désolé :)

    En faite je voudrai réaliser une macro avec une boucle FOR. Cette boucle FOR me permettrai de partir de la dernière cellule d'une colonne et de remonter (les cellules de la colonne) pour s'arrêter jusqu'à qu'à la première cellule "non-vide".

    Donc je vois a peut prés comment réaliser cette partie (je vais essayé de m'en occuper) mais le problème c'est que je voudrai lire le contenue de cette cellule (cette dernière est sous sous forme de Date). Serait-il possible de mettre le contenu de cette cellule dans une variable ?

    Voila, j'espère avoir été assez clair
    Sinon n'hésite pas à redemander des explications.
    0
  4. Amnesic
     
    Bonjour,
    NomVariable = ActiveCell.Value ' permet de stocker la valeur de la cellule active dans la variable NomVariable
    Comme l'expliquait zavenger, "tu peux remplacer activecell par Range("B3") ou alors Cells(3,2) pour avoir les donnees de la cellule B3"
    A+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. zavenger Messages postés 817 Statut Membre 161
     
    Je ne sais pas comment tu as prevu de trouver la derniere cellule de ta colonne, mais cette fonction

    ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

    te retourne le numero de ligne de la derniere cellule de ta page. Cela aide souvent
    0
  7. eeuuhh Messages postés 31 Statut Membre
     
    okokok bon jvais programmé now
    Et si le besoin se présente je vous demanderai conseils !!

    Merci a+
    0
  8. eeuuhh Messages postés 31 Statut Membre
     
    lol y a 2 sec je me suis prit pour un pro de VB.

    Me voilà bloqué ......... (comme d'ab....)

    En faite j'ai créer la boucle FOR (facile a faire sa!^^)
    Mais le problème c'est que je ne sais pas comment dire à la boucle FOR de s'arrêter jusqu'à qu'elle trouve une cellule non-vide ....

    Voici le débur de la macro :
    Sub detectecellnonvide()
    Dim nonvide As Variant
    For nonvide = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        
                  ............................
    
    
    Next nonvide
    End Sub
    


    Merci encore et encore pr votre aide
    +

    Désolé
    0
    1. zavenger Messages postés 817 Statut Membre 161
       
      Sub detectecellnonvide()
      Dim nonvide As Variant
      nonvide = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
      While (Cells(nonvide,1).Value <> "") '1 si tu veux tester la colonne A, 2 la B, etc ...
      nonvide = nonvide -1
      Wend
      End Sub
      0
  9. eeuuhh Messages postés 31 Statut Membre
     
    Merci merci merci mille fois Zavenger MAIS.... ^^

    Voila j'ai voulu mettre dans la variable "contenu" le contenu de la cellule en question (la cellule où la macro que tu m'a écrit s'arrête. Cette cellule est en forme Date)
    Ainsi avec le MsgBox j'ai voulu afficher le contenu de la cellule mais en compilant la MsgBox retourne rien ..............
    Sub cellnonvide()
    
    Dim nonvide As Variant
    Dim contenu As String
    
    nonvide = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
    While (Cells(nonvide, 1).Value <> "") '1 si tu veux tester la colonne A, 2 la B, etc ...
    nonvide = nonvide - 1
    Wend
    
    contenu = ActiveCell.Value
    MsgBox contenu
    End Sub
    


    ActiveCell.Value
    retourne bien la cellule sélectionné ?

    merci merci merci MERCI :D
    0
    1. zavenger Messages postés 817 Statut Membre 161
       
      Alors Oui, ActiveCell.Value retourne bien la cellule sélectionné, sauf que la macro n'a rien selectionné, elle s'est contentée delire le contenu des cellules. Si tu veux positionner la cellule active sur la cellule que la macro trouve, il faut faire

      Cells(nonvide, 1).select
      contenu = ActiveCell.Value
      MsgBox contenu

      ou alors si tu n'as pas besoin de te positionner sur la cellule trouvee, il faut faire

      contenu = Cells(nonvide, 1)l.Value
      MsgBox contenu
      0
  10. eeuuhh Messages postés 31 Statut Membre
     
    REsalut : )

    D'abord Merci zavenger de prendre du temps pour bien m'expliquer le VB.

    Alors j'ai intégré la partie de code qui me permettrai de me positionner sur la cellule active que la macro a trouvé et d'afficher son contenue via la MsgBox.

    Sub cellnonvide()
    Dim nonvide As Variant
    Dim contenu As String
    
    nonvide = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
    While (Cells(nonvide, 1).Value <> "") 
    nonvide = nonvide - 1
    Wend
    
    Cells(nonvide, 1).Select
    contenu = ActiveCell.Value
    MsgBox contenu
    
    End Sub
    


    Mais voilà la MsgBox n'affiche que dalle enfin n'affiche rien ^^
    Pourtant je pense que tu ne t'es surement pas trompé (et loin de moi cette idée)!! J'ai donc du faire une erreur ....

    Voila allez +++
    Ty
    0
    1. zavenger Messages postés 817 Statut Membre 161
       
      Ben si je me suis trompé

      la condition est celle-ci

      While (Cells(nonvide, 1).Value = "")
      0
  11. eeuuhh Messages postés 31 Statut Membre
     
    Super merci sa marche maintenant. C'est gentil !

    MAIS ....
    (lol)

    Juste comme sa pour ca pour savoir les coordonnées de la cellule en question...
    Je met

    Dim position as String
    
    position = Range(Cells(nonvide, 1))
    MsgBox position
    
    


    ...

    Allez merci bien zavenger !!!!
    0
    1. zavenger Messages postés 817 Statut Membre 161
       
      euhh peut etre
      dans Cells(nonvide, 1) nonvide c'est le numero de ligne et 1 le numero de colonne (donc A)

      bon, pour aller plus loin dans la programmation, il faudrait peut etre que tu trouves un cours sur la programmation objet parce que la .... il faut que tu comprenne la difference entre une propriete, une methode et puis que tu apprennes a utiliser l'aide en ligne d'excel qui n'est quand meme pas mal faite et qui va t'apprendre plein de chose. Ce n'est pas que je ne veuille pas t'aider mais il faudrait que tu bosses un peu tout seul et puis que tu reviennes sur le forum pour des problemes bien specifiques.

      Bon WE
      0
  12. eeuuhh Messages postés 31 Statut Membre
     
    ok np +++ ; )
    0