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 :

référence de tri non valide [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut référence de tri non valide
    Bonjour à tous,


    j'essaye de trier des dates de la plus ancienne à la plus récente mais j'ai une erreur "référence de tri non valdie et je ne comprends pas pourquoi...
    Pouvez-vous m'aider svp?
    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("suivi investigations").Sheets("clos").Range("A" & LigDeb & ":V" & LigFinCLOS).Sort Key1:=Range("A1"), Order1:=xlAscending
    En fait, je transfert dès qu'il y a une date dans la colonne A de la feuille "en cours" les valeur dans la feuille "clos" et j'aimerais une fois le transfert terminé que cela soit trié de la plus ancienne à la plus récente.

    voici mon code entier:

    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
    36
    37
    38
    39
    40
    41
    Sub TransFertCLOS()
    Dim LigFinCOURS As Long
    Dim LigFinCLOS As Long
    Dim LigDeb As Long
    Dim C As Range
    Dim i As Integer
    Dim n As Integer
     
    X = MsgBox("Êtes-vous sur de vouloir transférer les données closes ? Cette opération peut prendre plusieurs minutes", vbYesNo, "transfert des données closes")
        If X = vbNo Then
        Exit Sub
        End If
     
    If Workbooks("suivi investigations").Sheets("en cours").AutoFilterMode = True Then
       Workbooks("suivi investigations").Sheets("en cours").AutoFilterMode = False
    End If
    If Workbooks("suivi investigations").Sheets("clos").AutoFilterMode = True Then
       Workbooks("suivi investigations").Sheets("clos").AutoFilterMode = False
    End If
     
    Application.ScreenUpdating = False
     
    LigFinCOURS = Workbooks("suivi investigations").Sheets("en cours").Cells(Rows.Count, 3).End(xlUp).Row + 1
    LigDeb = 2
    LigFinCLOS = Workbooks("suivi investigations").Sheets("clos").Cells(Rows.Count, 3).End(xlUp).Row + 1
    Application.ScreenUpdating = False
     
    For i = LigFinCOURS To LigDeb Step -1
    If Workbooks("suivi investigations").Sheets("en cours").Cells(i, 1).Value <> "" Then
    LigFinCLOS = Workbooks("suivi investigations").Sheets("clos").Cells(Rows.Count, 3).End(xlUp).Row + 1
    Workbooks("suivi investigations").Sheets("en cours").Cells(i, 1).EntireRow.Copy Workbooks("suivi investigations").Sheets("clos").Range("A" & LigFinCLOS)
    Workbooks("suivi investigations").Sheets("en cours").Cells(i, 1).EntireRow.Delete
    End If
    Next i
    LigFinCLOS = Workbooks("suivi investigations").Sheets("clos").Cells(Rows.Count, 3).End(xlUp).Row + 1
    If LigDeb <> LigFinCLOS Then
    Workbooks("suivi investigations").Sheets("clos").Range("A" & LigDeb & ":V" & LigFinCLOS).Sort Key1:=Range("A1"), Order1:=xlAscending
    End If
    Workbooks("suivi investigations").Sheets("en cours").Range("A1:V1").AutoFilter
    Workbooks("suivi investigations").Sheets("clos").Range("A1:V1").AutoFilter
    End Sub

    merci d'avance de votre aide

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    2 pistes à explorer :
    • Range("A1") renvoie la cellule A1 de la feuille active du classeur actif, pas forcément de la feuille qui contient le tableau à trier
    • La cellule A1 n'est pas dans le tableau à trier si ligDeb > 1

    Cordialement,

    PGZ

  3. #3
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut
    Citation Envoyé par pgz Voir le message
    Bonjour.

    2 pistes à explorer :
    • Range("A1") renvoie la cellule A1 de la feuille active du classeur actif, pas forcément de la feuille qui contient le tableau à trier

    Cordialement,

    PGZ
    Bonjour PGZ et merci de ton interêt.

    En effet c'était ca car je lancais la macro depuis un autre feuille du coup il prenait pas le bon range. J'ai résolu le problème en précisant qu'elle range de quelle feuille prendre.

    Merci bcp

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    sans avoir testé, essayes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("suivi investigations").Sheets("clos").Range("A" & LigDeb, "V" & LigFinCLOS).Sort Key1:=Range("A" & LigDeb), Order1:=xlAscending, Header:=xlNo
    D'autre part, quand je vois cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X = MsgBox("Êtes-vous sur de vouloir transférer les données closes ? Cette opération peut prendre plusieurs minutes", vbYesNo, "transfert des données closes")
    Et si tu passais par des variables tableaux, ça irait certainement plus vite

    EDIT : pas vu la réponse de pgz et suis d'accord avec
    Range("A1") renvoie la cellule A1 de la feuille active du classeur actif, pas forcément de la feuille qui contient le tableau à trier
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut
    D'autre part, quand je vois cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X = MsgBox("Êtes-vous sur de vouloir transférer les données closes ? Cette opération peut prendre plusieurs minutes", vbYesNo, "transfert des données closes")
    Et si tu passais par des variables tableaux, ça irait certainement plus vite
    Bonjour Casefayere,

    En effet, tu as bien raison mais je ne maitrise pas du tout les variables tableau je vais m'y mettre petit à petit mais c'est assez compliqué surtout que à la base je n'y connais rien en programmation VBA. Alors petit à petit je vais y passer je pense oui une fois que je maitriserai assez les boucle et la méthode sort! déjà mdrr

    C'est vrai que le tuto du forum est très bien expliqué et dès que j'aurais plus de temps je pense que j'essayerai ce projet en passant par des tableaux

    Merci
    Bonne journée

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour !

    Il faudrait certainement penser à ce que Key1 fasse bien parti de la plage source ‼


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …


    _________________________________________________________________________________________________
    Je suis Charlie

    Jour d'ouverture des soldes : liquidation totale chez Charlie Hebdo …

    Un scientifique lira des centaines de livres au cours de sa vie, mais sera toujours persuadé qu'il lui reste beaucoup à apprendre.
    Un religieux n'en lira qu'un et sera persuadé d'avoir tout compris …

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

Discussions similaires

  1. [Toutes versions] Erreur actualisation TCD "Référence non valide"
    Par shubakas dans le forum Excel
    Réponses: 4
    Dernier message: 05/01/2012, 09h43
  2. [XL-2007] Référence non valide - TCD et plage dynamique
    Par Carambar dans le forum Excel
    Réponses: 4
    Dernier message: 11/10/2011, 07h16
  3. [XL-2007] Référence Externe Non-Valide
    Par argoet dans le forum Excel
    Réponses: 3
    Dernier message: 29/01/2010, 09h54
  4. Exécuter un test sur le message d'erreur "référence non valide"
    Par frisou65 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/08/2008, 09h50
  5. Référence d'une expression visible non valide
    Par kapotocho dans le forum Modélisation
    Réponses: 3
    Dernier message: 16/05/2008, 09h36

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