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 :

Tableau Evolutif via macro [XL-2010]


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
    Octobre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 20
    Par défaut Tableau Evolutif via macro
    Bonjour,

    Ne trouvant pas la solution je m'en remets aux lumières qui pourraient m'éclairer. Je souhaite depuis un tableau de base (sur la feuille principale) ajouter un modele de tableau (stocké dans la feuille 2) à chaque clic sur un bouton.
    Le soucis est que j'arrive à insérer le tableau une première fois mais après le programme bloque.
    J'identifie le problème car j'ai dans ma macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("G1").Select
    ActiveSheet.Paste
    Donc mon programme ne fait que copier par dessus la case G1 est ne s'incrémente jamais. Comment faire pour détecter la première colonne vide afin de continuer le copiage ?

    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 120
    Par défaut
    Bonjour,

    Voici un code te permettant de trouver la première cellule vide, attention à ne pas avoir des cellules vides dans ton tableau sinon les nouvelles données seront collées à cet endroit. A adapter à tes besoins.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("nomDeLaFeuille").Range("A1").End(xlDown).Offset(1, 0))
    Cordialement,

    Thomas

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 20
    Par défaut
    C'est justement mon problème je souhaiterais pouvoir intégrer le tableau suivant sans avoir a remplir complètement le tableau précédent :S

  4. #4
    Membre expérimenté
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 120
    Par défaut
    Si j'ai bien compris, c'est juste pour faire les structures des tableaux afin de pouvoir les remplir après coup ? En gros il n'y aurait que les en-têtes des tableaux dans la feuille ?

    Les tableaux sont à taille fixe ou à taille variable ?

    Dans le cas d'un tableau à taille fixe, il faut régler le premier paramètre de la méthode Offset par la taille de ton premier tableau

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 20
    Par défaut
    Les en-têtes du tableaux se recopient oui mais les formules à l'intérieure du tableau copié dépendent du tableaux précédent. Sachant que les tableaux peuvent gagner des lignes ou en perdre ...Donc ils restent variables.
    J'ai essayé de détecter la présence de valeur/texte dans la première cellule de chaque colonne avant de copier mais il ne veut pas car mes cellule d’en-tête sont fusionnées ...

  6. #6
    Membre expérimenté
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 120
    Par défaut
    Est-ce vraiment nécessaire de fusionner des cellules ? Si c'est seulement pour le design ou par manque de place, redimensionnes les. Sinon tu peux tester à partir de la cellule après l'en-tête ce qui t'évitera les erreurs à cause de la fusion des cellules.

    Je te propose :

    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
    Public Sub test()
     
    Dim compteur As Integer
    Dim texte As String
     
    texte = "Bonjour"
     
    compteur = 3
     
     
        Do While Range("A0" & compteur) <> void
     
            If Range("A3" & compteur) = void Then
     
                compteur = compteur + 1
     
            Else
     
                GoTo fin
     
            End If
        Loop
     
    fin:
     
        Range("A0" & compteur) = texte
     
    End Sub
    A savoir que pour la valeur du compteur initial (ici 3), il faut mettre le numéro de la ligne suivant ton en-tête et que à la place de "=texte", à la fin, il faudra que tu mettes ton tableau, la j'ai crée cette variable juste pour le test.

    Edit : La condition if est totalement useless, puisque la boucle réalise déjà le test de condition.

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

Discussions similaires

  1. Lire données tableau croisé dynamique via macro
    Par Gamack dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/08/2014, 18h53
  2. Concaténation de tableau via macro
    Par chtrousselle dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/10/2012, 12h46
  3. Réponses: 2
    Dernier message: 07/09/2010, 12h39
  4. recuperer un tableau sur page html securisee via macro
    Par TOTOTAR dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/06/2009, 04h53
  5. tableau dynamique via une table sous sql server
    Par bibi2607 dans le forum ASP
    Réponses: 5
    Dernier message: 21/02/2005, 15h45

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