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 :

Rerchercher derniére ligne écrite et y ajouter un numéro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 72
    Par défaut Rerchercher derniére ligne écrite et y ajouter un numéro
    Bonjour à tous !
    Voilà, en fait, je recherche une formule qui me rechercherait dans un tableau la derniére ligne écrite et y rajouterai un numéro qu'elle marquerait en dessous, sachant que cette derniére valeur doit être récupérée pour remplir un userform ! Comprends pas tout à ce niveau ! Sachant que cette valeur doit toujours être dans la colonne A et que le numéro à ajouter serait +1. Merci d'avance.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim NumLigne As Long,Valeur As Long
     
    NumLigne = Range("A65536").End(xlUp).Row
     
    Valeur = Cells(NumLigne,1).Value + 1
     
    Cells(NumLigne + 1,1).Value = Valeur
    Cordialement,

    Tirex28/

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 72
    Par défaut
    Merci beaucoup, je vais essayer ça !

  4. #4
    Membre chevronné
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Par défaut
    Bonsoir,

    Depuis Excel 2007, les feuilles Excel sont passées de 65 536 lignes (2^16) à 1 048 576 (2^20).

    Dorénavant, il vaut mieux utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumLigne =Range("A" & Range("A:A").Rows.Count).End(xlUp).Row
    qui a l’avantage de fonctionner quelque soit la version.

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 72
    Par défaut
    Merci pour vos réponses mais excel me dit qu'il y a une incompatibilité de type 13 à cette ligne, et j'ai beau cherché, je trouve pas !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Valeur = Cells(NumLigne,1).Value + 1

  6. #6
    Membre chevronné
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Par défaut
    Re,

    As-tu donné un type à tes 2 variables, comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Valeur As Integer, NumLigne As Integer
    et si oui quel est ce type ?

    Qu’obtiens-tu avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        MsgBox NumLigne
        MsgBox Cells(NumLigne,1)
    Si Valeur est numérique et que le contenu de Cells(NumLigne,1) ne l'est pas,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Valeur = Cells(NumLigne,1).Value + 1
    renvoie effectivement une erreur de type 13, car cela revient à vouloir affecter à Valeur, quelque chose qui n’est pas numérique

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour JPDU92,

    Tirex28 vous a donné la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim NumLigne As Long,Valeur As Long
    NumLigne = Range("A65536").End(xlUp).Row
    Valeur = Cells(NumLigne,1).Value + 1
    Cells(NumLigne + 1,1).Value = Valeur
    Comme le dit Bigalo, il vaut peut-être mieux prévoir et utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumLigne =Range("A" & Range("A:A").Rows.Count).End(xlUp).Row
    Je me trompe peut-être mais à partir du moment où la procédure recherche systématiquement la dernière ligne utile, si on écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    NumLigne = Range("A65536").End(xlUp).Row + 1
     
    ou
     
    Range("A:A").Rows.Count).End(xlUp).Row + 1
    pourquoi affecter cette valeur en colonne A ?

    Dans le code de votre Userform, ne suffit'il pas d'utiliser la variable Numligne pour l'affectation des données ?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/11/2009, 17h18
  2. Recherche dans un tableau de la dernière ligne écrite
    Par kristoch91 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/10/2008, 12h39
  3. Réponses: 2
    Dernier message: 19/01/2007, 11h04
  4. Afficher dernière ligne ajoutée dynamiquement dans un textarea
    Par kingmandrax dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 16/11/2006, 18h54
  5. [JList] rendre visible la dernière ligne ajoutée
    Par Mille sabords dans le forum Composants
    Réponses: 3
    Dernier message: 12/04/2005, 11h32

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