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 :

Problèms macro pour inserer dynamiquement un tableau dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2018
    Messages : 5
    Par défaut Problèms macro pour inserer dynamiquement un tableau dynamique
    Bonjour à tous et à toutes,

    Voila j'ai un soucis sur ma macro. J'aimerai inserer un tableau dynamique via un bouton à l'aide d'une macro. Sachant que ce tableau dynamique est sous forme de tableau (tables) et qu'il doit s'insérer en dessous d'un premier tableau puis d'un second etc. Pour ce faire j'utilise la fonction offset. Mais lorsque j'exécute la macro pour qu'il insert le tableau il le fait bien mais décale mal le tableau. Il prend pour référence le début du tableau au lieu de la fin...

    Voici le code utiliser :
    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
    Sub INSERTION_TABLEAU_V2()
    'Sélection du tableau
    Rows("6:22").Select
    Application.CutCopyMode = False
    'Copie du tableau
    Selection.Copy
    'Référence sur la position à partir de laquelle il faut décaler le tableau à coller
    Dim n As Long
        With ActiveSheet
            n = .ListObjects.Count
            .ListObjects(n).Range.Select
        End With
    'Décalage par rapport à la référence
    ActiveCell.Offset(2, 0).Select
    'Insertion du tableau
    ActiveSheet.Paste
    End Sub
    Une solution?

    Merci à vous,

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2018
    Messages : 5
    Par défaut
    Si ca peux vous aidez, je vous joint à ce post le fichier.
    Fichiers attachés Fichiers attachés

  3. #3
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 587
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 587
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub COPIE_TABLEAU()
     
        Destination = Worksheets("METRES").Cells(Rows.Count, 1).End(xlUp).Row + 2
        'Copie du tableau
        Rows("6:22").Copy Destination:=Worksheets("METRES").Range("A" & Destination)
     
    End Sub

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2018
    Messages : 5
    Par défaut
    Citation Envoyé par 78chris Voir le message
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub COPIE_TABLEAU()
     
        Destination = Worksheets("METRES").Cells(Rows.Count, 1).End(xlUp).Row + 2
        'Copie du tableau
        Rows("6:22").Copy Destination:=Worksheets("METRES").Range("A" & Destination)
     
    End Sub
    Chris,

    Merci pour ton retour et pour ton aide.
    J'ai un soucis quand j'utilise ta macro, si j'insert de nouvelles lignes dans mon 1er tableau de base, l'insertion foire complétement.
    Il faudrait qu'excel prenne en compte le nombre variante de ligne de mon tableau et insert le suivant en dessous.
    Si le tableau est fixe cela marche impeccablement sinon.

    A moins qu'il faut que j'incrémente ma macro de base avec ton code. Mais cela fonctionne pas (je le fait peut etre mal).


    Merci encore,

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2018
    Messages : 5
    Par défaut
    Oups je suis désolé je n'ai rien dit. Cela marche très bien en faite. Il suffit que j'utilise pas le 1er tableau. Il sert de base vierge à ne pas toucher.
    Un grand merci. Je suis impressionné de comment tu as simplifier le code

    Pour aller plus loin, est il envisageable de créer une option de tri de tableau à l'aide d'un msgbox?

    Elle marcherais de cette maniere :
    - 1ère fenêtre, La msgbox me demande un code (qui ce trouve dans une des cellules d'un des tableaux. J'entre le code et clique sur ok.
    - La 1ère fenêtre ce ferme et ouvre une seconde qui m'affiche le tableau correspondant au code.

  6. #6
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 587
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 587
    Par défaut
    RE

    Je ne pige pas trop.

    Peux-tu donner un exemple concret quelle cellule, quelle valeur...

    Cette valeur n’existera qu'une dois dans l'onglet ? Il faut se déplacer sur ce tableau ? Tu parles de fenêtre mais tout est dans un onglet...

    Si un tableau est supposé s'allonger il est totalement inutile de créer plus d'une ligne. La saisie l'allongera...

    Ton utilisation des tableaux est peu conforme et la duplication créer de tas de noms : l'exploitation statistique en aval le cas échéant risque d'être impossible...

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2018
    Messages : 5
    Par défaut
    Ex concret sur ma feuille j'ai 100 tableaux de ce type les uns en dessous des autres (plus ou moins long, un tableau peux faire 20 lignes comme 150) :

    Nom : ex.PNG
Affichages : 133
Taille : 11,4 Ko

    Je demande à mon collègue "montre moi le détail de tes doublages 13+100 stp"
    La, il cherche parmi ces 100 tableaux lequel m'intéresse. 5 min on passée... On a perdu du temps, ca peux faire stresser pour rien, c'est fastidieux de chercher parmi les 100 tableaux lequel m'intéresse.... etc

    J'aimerai quelque chose du genre :

    Nom : 1.PNG
Affichages : 140
Taille : 86,3 Ko

    - Il clique sur "CHERCHER ARTICLE"
    - La une msgbox s'affiche on lui demande le code qui figure dans un des tableaux et clique sur OK.
    => il entre le code qui figue à coter de la cellule code. Dans l'exemple du dessus ce serait "1.1"
    - Elle ce ferme puis ouvre une nouvelle msgbox qui affiche le tableau en lui même (il faut pouvoir le parcourir).

    Quand je parle de fenêtre je pense à une fenêtre contextuelle? de type msgbox.

    Tu vois mieux? Je sais pas si c'est réalisable, dit moi J'avais cette idée en tête en tout cas.

  8. #8
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 587
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 587
    Par défaut
    RE

    Je vois que mes commentaires te laissent de marbre... surtout avec 100 tableaux qu'il va bien falloir exploiter autrement que du regard...

    Une inputbox ou autre formulaire me parait compliqué si on ne fournit pas le liste des codes : il va falloir gérer les erreurs de saisie...

    Je ne sais si on peut mettre un tableau manipulable dans un formulaire... et le cas échéant ce n'est surement pas simple.

    Donc il serait plus simple de
    • créer une liste des codes existants : on peut faire une liste déroulante (de type validation) en K1 par exemple basée sur un tableau des codes de façon à la rendre évolutive...
    • avoir un code, associé à un bouton en dessous, qui effectue la recherche sur la valeur choisie et scrolle l'onglet au bon endroit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Cherche()
    Dim x As Range
        CodeCherche = Range("K1").Value
        Set x = ActiveSheet.Range("B:B").Find(CodeCherche)
        If x Is Nothing Then
            MsgBox ("Code introuvable")
        Else
            ActiveWindow.ScrollRow = x.Row - 1
        End If
    End Sub

Discussions similaires

  1. [XL-2010] Problème macro pour tableau délai
    Par ThoGui63 dans le forum Excel
    Réponses: 5
    Dernier message: 09/11/2017, 12h28
  2. Réponses: 1
    Dernier message: 20/04/2009, 16h26
  3. [FPDF] problème avec les images dans un tableau dynamique
    Par GADSN dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 08/04/2009, 12h11
  4. Réponses: 3
    Dernier message: 03/07/2007, 16h17
  5. Réponses: 10
    Dernier message: 24/05/2007, 10h27

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