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 :

Dernière ligne dans mauvaise feuille [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Cadre de santé
    Inscrit en
    Janvier 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Cadre de santé
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2020
    Messages : 6
    Par défaut Dernière ligne dans mauvaise feuille
    Bonjour à tous,

    Nouveau en programmation vba pour le boulot, je dois créer un outil qui va récupérer des données dans un autre classeur.
    Avec mon code ci dessous, il calcule la dernière ligne dans ma feuille actuelle et non celle qu'il devrait normalement ouvrir.

    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
    31
    32
    33
    34
    35
     
    Private Sub CommandButton1_Click()
        ' Déclaration des variables
        Dim xlApp As New Excel.Application ' déclarer Public si dans un module
        Dim xlBook As New Excel.Workbook
        Dim xlSheet As New Excel.Worksheet
        Dim year As Long
        Dim chemin As String
        Dim DL, DL2 As Long
     
        ' Récupération de l'année en cours
        year = Range("A1").Value
        chemin = "\\Ficsm02\ec_drh_dsi_cadres\Direction de soins\POOL DE SUPPLEANCE (EN CONSTRUCTION)\BESOINS DES POLES\"
     
        'Ouvrir le classeur dont on a besoin avec tout le chemin...
        Set xlBook = xlApp.Workbooks.Open(chemin & year & "\" & CommandButton1.Caption & ".xlsm")
        Set xlSheet = xlBook.Sheets(TextBox1.Value) ' si on veut utiliser une feuille en particulier
     
        'On copie la plage désirée
        With xlSheet
            DL = Range("D" & Rows.Count).End(xlUp).Row
            MsgBox ("La dernière ligne est " & DL & "!")
            .Range("B4:O" & DL).Copy
        End With
     
        ' On revient sur notre classeur
        ActiveSheet.Select
     
        ' On définit la dernière ligne libre
        DL2 = Range("D65536").End(xlUp).Row + 1
     
        Range("B" & DL2).PasteSpecial Paste:=xlPasteValues
     
        Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
        MsgBox "Fin du traitement des données !" 'message
    Merci pour vos éclaircissement.

    Bonne journée,

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bopnjour,

    Dans un bloc With, pour se référer à l'objet référencé, il convient de placer un point devant les propriétés ou méthodes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With xlSheet
            DL = .Range("D" & .Rows.Count).End(xlUp).Row

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Cadre de santé
    Inscrit en
    Janvier 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Cadre de santé
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2020
    Messages : 6
    Par défaut
    Merci beaucoup pour cette réactivité,
    ça fonctionne

    Bonne journée,

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

Discussions similaires

  1. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13
  2. [VBA-E] ajout d'une ligne dans 2 feuilles
    Par PHPdudimanche dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/12/2006, 10h10
  3. [VBA-E] Colorier une ligne dans une feuille excel
    Par skyst3f dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/10/2006, 11h42
  4. Ajout de ligne dans form "feuille de données"
    Par jarod_bx dans le forum Access
    Réponses: 5
    Dernier message: 12/01/2006, 13h31
  5. Sélection de lignes dans une feuille Excel
    Par lerico dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2005, 09h20

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