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 :

commencer recopie tableau dernière ligne vide


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Par défaut commencer recopie tableau dernière ligne vide
    bonjour,
    j'ai plusieurs feuilles à scruter et ne recopier que les lignes contenant une information dans la colonne 22. Je voudrais que les traitement se mettent à la suite les uns des autres sur une feuille récapitulative. J'arrive bien à avoir le numéro de la dernière ligne utilisé mais n'arrive pas à le rentrer dans la case de début de copie du tableau (code macro joint). Je me doute que cela est enfantin mais c'est ma première macro, les bases me manquent.
    ps : le code ne doit pas être très joli car récupéré et adapté de plusieurs macros trouvés ! si quelqu'un sait comment je pourrais balayer automatiquement toutes mes feuilles du classeur, je suis preneur aussi !
    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
     
    Sub Bouton1_Cliquer()
    '
    '
     
    Dim tablo1, i&, tablo2(50, 50), n&, j&, dernière_colone&, k&
    n = 0
    'feuilcourante = "A_CholSa_12h"
    tablo1 = Sheets("A_CholSa_12h").Range("A1:AC" & Sheets("A_CholSa_12h").[A65536].End(xlUp).Row)
    For i = 1 To UBound(tablo1)
      If tablo1(i, 22) <> "" Then
        For j = 0 To UBound(tablo1, 2) - 1
            For k = 0 To UBound(tablo1, 2) - 1
            tablo2(k, n) = tablo1(i, k + 1)
            Next
        Next
            n = n + 1
      End If
    Next
    If n Then
      With Sheets("dons")
        case_vide = Range("A65536").End(xlUp).Row + 1
        '.[Cells(1,case_vide)].Resize(n, j) = Application.Transpose(tablo2)
        .[A2].Resize(n, j) = Application.Transpose(tablo2)
        .Activate
      End With
    End If
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    si quelqu'un sait comment je pourrais balayer automatiquement toutes mes feuilles du classeur, je suis preneur aussi !
    La bouche For Each ... In ... est faite pour cela
    Petit exemple où sht est la variable objet représentant la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim sht As Worksheet
     For Each sht In ThisWorkbook.Worksheets
      MsgBox sht.Name
     Next
    Pour le reste, je ne comprends pas très bien où se situe ton problème.
    J'arrive bien à avoir le numéro de la dernière ligne utilisé mais n'arrive pas à le rentrer dans la case de début de copie du tableau (code macro joint)
    A quelle case fais tu allusion ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Par défaut
    bonjour,
    merci pour cette info je vais tester de suite.
    pour la case, c'est la ligne :
    .[A2].Resize(n, j) = Application.Transpose(tablo2)
    ou A2 est la case de début de transposition du tablo2, cela fonctionne très bien pour la première feuille.
    je voudrais que cette case soit A"première_ligne_vide" mais je pense que [A2] défini un "tableau" et je ne sais pas comment faire varier le 2 en fonction de la première ligne disponible.
    merci d'vance

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour faire varier l'adresse d'une cellule utilise Range("A2") ou encore Cells(2, 1) au lieu de la syntaxe [A2]
    Donc avec la syntaxe ci-dessous, c'est la variable de type String (Address) qui contient la chaîne A2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Address = "A2"
    Range(Address)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Par défaut
    merci beaucoup,
    je viens d'essayer ton code pour balayer les feuilles et en fait il se déplace tout seul ?? il mets toutes les recherches les unes après les autres ! Il doit y avoir une subtilité dans le code que je ne maîtrise pas.
    le balayage des feuilles se fait très bien.
    encore merci

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si j'ai bien compris, tu souhaites parcourir toutes feuilles de ton classeur à l'exception de celle qui doit contenir le récapitulatif.
    Ces feuilles sont organisées de la même manière et tu voudrais exporter vers la feuille récapitulative toutes les lignes dont les cellules de la colonne 22 est remplie ?
    Si c'est le cas, utilise la méthode AdvancedFilter (filtre avancé) de l'objet Range
    Pour en savoir plus sur les filtres avancés d'excel, je te propose de lire Les filtres avancés ou élaborés dans Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/11/2015, 10h07
  2. SPOOL : Effacer dernière ligne vide du fichier.
    Par Ujitsu dans le forum Sql*Plus
    Réponses: 6
    Dernier message: 30/07/2007, 18h15
  3. [VBA-E] Trouver la dernière ligne vide
    Par electrosat03 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/01/2007, 20h11
  4. Réponses: 4
    Dernier message: 15/06/2006, 13h31
  5. [JTable] Insérer à la dernière ligne vide
    Par jamalmoundir dans le forum Composants
    Réponses: 1
    Dernier message: 31/05/2006, 23h15

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