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 :

Opération sur une variable Long [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Mars 2015
    Messages : 42
    Points : 29
    Points
    29
    Par défaut Opération sur une variable Long
    Bonjour,

    Je suis débutant, j'ai trouvé un bout de script pour avoir le numéro de la dernière ligne, et j'aimerais coller en dessous de cette dernière ligne des cellules.

    Le pb vient du fait que j'ai du mal avec la gestion des variables : je n'arrive pas à obtenir ma variable DernLigne incrémentée de 1...

    Je ne comprends pas trop d'où vient l'erreur, sachant que en général ca marche de faire DernLigne= DernLigne +1 ?



    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub Macro7()
    '
    ' Macro7 Macro
    '
     
    '
        Dim maPlage As Range
        Dim DernLigne As Long
        Dim Test As Long
     
        DernLigne = Range("A" & Rows.Count).End(xlUp).Row
        Set maPlage = Range("A1:Z" & DernLigne)
     
        Sheets("Feuil2").Select
        Range("A1:B5").Select
        Selection.Copy
        Sheets("Feuil1").Select
        Range("A" & DernLigne).Select
        ActiveSheet.Paste
     
        DernLigne = Range("A" & Rows.Count).End(xlUp).Row
        Test = DernLigne + 1
        Sheets("Feuil2").Select
        Range("A6:B7").Select
        Selection.Copy
        Sheets("Feuil1").Select
        Range("A" & DernLigne).Select
        ActiveSheet.Paste
     
    End Sub

    Merci d'avance pour votre aide !!

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 103
    Points : 9 908
    Points
    9 908
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    si tu calcules ta dernière ligne et que tu mets sont numéro dans ta variable DernLigne, tu n'as pas besoin de recalculer sa valeur à chaque fois
    il te suffit de faire le DernLigne = DernLigne + 1 à la fin de chaque tour de boucle (quand c'est une boucle), ou des procédés similaires


    voici ton code un peu optimisé .. il est inutile de sélectionner une plage pour ensuite utiliser "Selection" et faire ton action : fait directement l'action sur la plage !
    Enfin, c'est du code pondu par l'enregistreur de macro, mais il faut que tu apprennes à l'épurer et l'optimiser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Explicit
     
    Sub Macro7()
     
    Dim DernLigne As Long
    Dim Test As Long
     
    With Worksheets("Feuil1")
        DernLigne = .Range("A" & Rows.Count).End(xlUp).Row
        Worksheets("Feuil2").Range("A1:B5").Copy .Range("A" & DernLigne)
        Worksheets("Feuil2").Range("A6:B7").Copy .Range("A" & DernLigne + 1)
    End With
     
    End Sub

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Mars 2015
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Merci pour ta réponse !

    J'avais essayé de réaliser le + 1 directement dans la parenthèse de la cellule mais ça ne marchait pas.

    Cela pourrait venir de 'Option Explicit' que je n'avais pas par contre ?

    Et c'est vrai qu'il faut que je l'allège et que j'enlève les rajouts de l'enregistreur !

    Bonne journée

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 103
    Points : 9 908
    Points
    9 908
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Option Explicit va te forcer à déclarer tes variables.

    si tu oublies d'en déclarer une, tu auras une erreur en lançant ta procédure

    essaye d'intégrer ma proposition à ton projet, et si tu as des soucis reviens avec ton code modifié, les lignes qui posent problèmes, et une explication du comportement voulu vis à vis du comportement qu'adopte ton code

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

Discussions similaires

  1. [DATA] Répéter une même opération sur plusieurs variables
    Par Elsa.b dans le forum SAS Base
    Réponses: 5
    Dernier message: 16/06/2015, 14h41
  2. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  3. [Tableaux] action sur une variable ->
    Par mactech dans le forum Langage
    Réponses: 9
    Dernier message: 15/12/2005, 18h01
  4. Opération sur une variable
    Par pcdj dans le forum Linux
    Réponses: 2
    Dernier message: 29/10/2005, 20h02
  5. Ajouter un listener sur une variable
    Par serwol dans le forum Général Java
    Réponses: 4
    Dernier message: 14/10/2005, 15h39

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