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 :

Sub qui ignore des instructions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Stagiaire
    Inscrit en
    Avril 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Chine

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Avril 2013
    Messages : 26
    Par défaut Sub qui ignore des instructions
    Bonjour a tous !

    J'ai essaye de creer une petite macro qui permet de copier une plage provenant d'un autre fichier et de la coller dans la deuxieme feuille du fichier de la macro. Malheureusement, j'ai un petit probleme...
    Je ne comprends pas pourquoi ceci ne fontionne pas:

    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
    Sub copyData()
     
        Dim ws As Worksheet
        Dim copyRange As Range
        Dim startingCell, lastCell As Range
     
     
        Set ws = ActiveWorkbook.Sheets(2)
     
        'select file
        On Error Resume Next
        wbName = Application.GetOpenFilename(FileFilter:="(*.xls* ),*.slsx" _
                    , Title:="Select workbook")
        If wbName = False Then
            Exit Sub
        End If
     
        Workbooks.Open (wbName)
     
            'Selecting range to copy: from A5 to last cell column - 2 (ex.: last cell is D7, we will copy from A5 to B7)
            Set lastCell = Cells(100000, 1).End(xlUp)
            Set lastCell = Range(lastCell.Address).End(xlToRight).Offset(0, -2)
            Set startingCell = Range("A5")
            Set copyRange = Range(startingCell.Address, lastCell.Address)
     
        copyRange.Copy ws.Range("A1")
    exitSub:
        ActiveWorkbook.Close
        'ws.Cells.ClearFormats
        ws.Columns.EntireColumn.AutoFit
     
    End Sub
    alors que ceci fontionne (meme methode de copie sauf que pas sur un autre fichier mais sur la feuille active):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
            Set ws = ActiveWorkbook.Sheets(2)
     
            Set lastCell = Cells(100000, 1).End(xlUp)
            Set lastCell = Range(lastCell.Address).End(xlToRight).Offset(0, -2)
            Set startingCell = Range("A5")
            Set copyRange = Range(startingCell.Address, lastCell.Address)
     
            copyRange.Copy ws.Range("A1")
    End Sub
    Dans le premier code j'ai enleve toute gestion d'erreur pour essayer de comprendre, visiblement le programme ignore juste toutes les instructions concernant lastCell, cad j'ai essaye de mettre des Msgbox lastCell.Value et ca ne m'affichait rien (pas une msgbox vide, non, juste pas de msgbox du tout), alors que ca fonctionne niquel avec un msgbox startingCell.Value. Et le programme continuait jusqu'a la fin, il ne m'envoyait aucun message d'erreur.

    Pourrait-on m'eclairer s'il vous plait?

    Merci d'avance !

    (et desole mais je n'ai pas d'accents sur mon clavier !)

  2. #2
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Essaie en indiquant dans quel classeur se trouvent les cellules à copier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Set wOrigine = Workbooks.Open(wbName)
     
            'Selecting range to copy: from A5 to last cell column - 2 (ex.: last cell is D7, we will copy from A5 to B7)
            Set lastCell = wOrigine.Sheets(2).Cells(100000, 1).End(xlUp)
            Set lastCell = wOrigine.Sheets(2).Range(lastCell.Address).End(xlToRight).Offset(0, -2)
     
            If lastCell Is Nothing Then
             MsgBox "Il n'y a aucune donnée dans cette plage"
            Else
             Set startingCell = wOrigine.Sheets(2).Range("A5")
             Set copyRange = wOrigine.Sheets(2).Range(startingCell.Address, lastCell.Address)
     
             copyRange.Copy ws.Range("A1")
            End If

  3. #3
    Membre averti
    Homme Profil pro
    Stagiaire
    Inscrit en
    Avril 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Chine

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Avril 2013
    Messages : 26
    Par défaut
    Ca ne fonctionne pas non plus, mais j'ai trouve le probleme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set lastCell = Cells(100000, 1).End(xlUp)
    Le fichier Excel que j'ai ouvert avec la macro datait et ne possedait donc pas assez de cellules, du coup il ignorait cette instruction. Je l'ai trouve en balancant des msgbox partout pour trouver exactement ou se situait l'erreur.

    J'ai improvise la solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set lastCell = Cells(65535, 1).End(xlUp)


    Merci quand meme !

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/09/2009, 15h36
  2. Controles qui ignorent des clicks ?
    Par Nalfeim dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 21/07/2008, 13h33
  3. [MySQL] zone cliquable qui redirige vers une page grace a des instructions php/sql
    Par tiph02 dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 04/06/2008, 14h39
  4. Requête qui ignore des critères
    Par SebCom dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 31/12/2007, 14h38
  5. Réponses: 3
    Dernier message: 22/01/2007, 00h03

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