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 :

Se positionner dans l'avant dernière cellule d'un tableau avec filtre


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
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2015
    Messages : 24
    Par défaut Se positionner dans l'avant dernière cellule d'un tableau avec filtre
    Bonjour à tous,

    Je me permets de vous solliciter car je n'arrive pas à aboutir au bon fonctionnement de mon code VBA.

    Pour info, j'ai un tableau qui est une base de données de dossiers. Si un dossier est "Fini", un filtre s'applique automatiquement et le masque.

    Mon but est d'écrire une macro qui va insérer une ligne à la fin de mon tableau, en avant dernière ligne car j'ai une ligne total.

    Dans un second temps je souhaiterais accompagner l'utilisateur du tableau à compléter cette ligne insérée.

    Voici le code que j'ai écris :

    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
    42
    43
    44
    45
    46
    47
    48
    Sub AjouterUneLigne()
     
    'Message de confirmation
     
    If MsgBox("Voulez vous ajouter un nouveau dossier?", vbYesNo) = vbYes Then
     
    'Insertion d'une ligne supplŽmentaire
     
    Dim DerLigne As Long
    DerLigne = Cells(Rows.Count, 1).End(xlUp).Row
    Rows(DerLigne).Insert
     
         'Entrer le nom du dossier
         Dim Dossier As String
         Dim Diligence As String
         Dim Responsable As String
         Dim Collaborateur As String
     
     
         Dossier = InputBox("Veuillez entrer le nom du dossier :", "Nom du dossier")
     
         'Placement dans le cellule insŽrŽe dans la colonne A
         Range("Table1[[#Headers],[Dossiers]]").Select
        ActiveCell.Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Range("A1").Value = Dossier
     
        Dilligence = InputBox("Veuillez entrer les diligences pour ce dossier :", "Diligence")
        Range("Table1[[#Headers],[Diligences à accomplir]]").Select
        ActiveCell.Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Range("A1").Value = Diligence
     
         Responsable = InputBox("Merci de renseigner en lettres capitales les initiales(Prénom/Nom)du responsable du dossier :", "Responsable")
        Range("Table1[[#Headers],[Responsable]]").Select
        ActiveCell.Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Range("A1").Value = Responsable
     
         Collaborateur = InputBox("Merci de renseigner en lettres capitales les initiales(Prénom/Nom)du collaborateur en charge du dossier :", "Collaborateur")
        Range("Table1[[#Headers],[Collaborateur]]").Select
        ActiveCell.Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Range("A1").Value = Collaborateur
     
         End If
     
    End Sub
    Le probleme avec ce code c'est que une fois que mon tableau a un filtre, la nouvelle ligne se positionne bien en avant dernière position de mon tableau, mais je n'arrive pas à la completer avec les inputbox...

    Auriez vous une solution à me proposer?

    En vous remerciant par avance les experts!

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Je ne vois pas quel est ton problème. Qu'est-ce qui ne fonctionne pas ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2015
    Messages : 24
    Par défaut
    La nouvelle ligne s'insert bien juste au dessus de la ligne total.

    Mais lorsque les Input box s'ouvrent, les informations que je rentre dans la boite de dialogue s'insert dans à la fin des lignes masquées.

    Je te joins mon fichier, ca sera plus explicite.

    Pour que le problème apparaisse, il faut activer la macro "Archiver" puis de faire "Ajouter un nouveau dossier".

    Merci d'avance!
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Dilligence = InputBox("Veuillez entrer les dilligences pour ce dossier :", "Dilligence")
        Cells(DerLigne, Range("Table1[[#Headers],[Diligences à accomplir]]").Column).Value = Dilligence
    etc.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2015
    Messages : 24
    Par défaut
    Merci Daniel pour ta réponse.

    J'ai un message d'erreur qui s'affiche lorsque j'exécute la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dossier = InputBox("Veuillez entrer le nom du dossier :", "Nom du dossier")
        Cells(DerLigne, Range("Table1[[#Headers],[Dossier]]").Column).Value = Dossier
    Excel m'indique que la méthode Range de l'objet global a échoué ...

    Range n'est pas le bon terme?

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Curieux, j'ai eu la même erreur. J'ai effacé la ligne et tout retapé. Plus d'erreur...

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

Discussions similaires

  1. [XL-2007] formule d'affichage avant dernière cellule
    Par cairnoc dans le forum Excel
    Réponses: 4
    Dernier message: 30/04/2013, 21h58
  2. avant dernière cellule d'une colonne filtrée
    Par orgnobi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/09/2012, 12h51
  3. [XL-2007] récupérer la valeur de l'avant dernière cellule d'une colonne
    Par FloFlosu dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/02/2011, 23h08
  4. Réponses: 9
    Dernier message: 24/08/2009, 16h39
  5. Dernière cellule d'un tableau
    Par cynoq dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/12/2007, 15h22

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