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 :

Détéction de la dernière ligne non vide dans un tableau excel avec VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 24
    Points : 19
    Points
    19
    Par défaut Détéction de la dernière ligne non vide dans un tableau excel avec VBA
    Bonjour,
    j'ai besoin d'un bouton qui copie une plage de D9 à K9 de la feuille "Template correspondance" vers la dernière ligne vide d'une feuille "Liste".J'ai écrit ce code mais il n'a pas marché.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub macro3()
    Dim i As Integer
    Dim ligne As Integer
     
    Sheets("Template correspondance").Select
    Range("A9:K9").Copy
     
        Sheets("Liste").Select
        ligne = Sheets("liste").Range("A1048576").End(xlUp).Row
        i = ligne + 1
        Range("A" & i).Paste
     
     
     
    End Sub
    c'est urgent.Aidez moi svp.

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    les variables integer se limite à une valeur <= 255.

    tu comprends ton problème ?

    utilise un long et normalement "A65535" suffit pour le test du end(xlup). (sauf XL > 2003 et graaaaaaaaaaaaand tableau).
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    désolé mais ca marche encore pas

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    bonjour


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    Sub macro3()
    Dim ligne As long
    Sheets("Template correspondance").Range("A9:K9").Copy
    ligne = Sheets("liste").Range("A65536").End(xlUp).Row+1
    sheets("Liste").Range("A" & ligne).Paste
    End Sub
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir,

    Un type Integer ne peut allez au delà de 32766 (petite erreur de Godzestla qui a confondu avec un type Byte, qui lui ne peut aller au delà de 254) donc, si tu possède plus de lignes occupées il te faut utiliser une variable de type Long :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Sub macro3()
     
        Dim ligne As Long
     
        Sheets("Template correspondance").Select
        Range("A9:K9").Copy
     
        Sheets("Liste").Select
     
        With Sheets("liste")
            ligne = .Range("A" & .Rows.Count).End(xlUp).Row + 1
        End With
     
        Range("A" & ligne).Paste
     
    End Sub
    Hervé.

  6. #6
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 696
    Points
    6 696
    Par défaut
    Bonjour,

    PS : abandonner cette notation qui est obsolète et dangereuse (portabilité) depuis 2007 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ligne = Sheets("liste").Range("A1048576").End(xlUp).Row
    au profit de choses du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ligne = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    comme utilisé par Theze

    cordialement,

    Didier
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

  7. #7
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Un type Integer ne peut allez au delà de 32766 (petite erreur de Godzestla qui a confondu avec un type Byte, qui lui ne peut aller au delà de 254)
    Oops. Désolé. Journée chahutée.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

Discussions similaires

  1. Remonter les lignes non vides dans un tableau excel
    Par gilou41 dans le forum Excel
    Réponses: 6
    Dernier message: 23/04/2013, 14h42
  2. [XL-2010] Trouver la dernière cellule non vide dans un classeur excel fermé
    Par julienIS dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/03/2013, 11h49
  3. [XL-2003] Récupérer une cellule de la dernière ligne non vide d'un tableau
    Par christoff916 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/08/2011, 14h22
  4. Dernière ligne non vide, dans un fichier contenant des plans.
    Par Faelucc dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/07/2010, 13h27
  5. Réponses: 2
    Dernier message: 15/11/2009, 16h03

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