Importation excel à la suite

Dioups Messages postés 13 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un tableur sur lequel je note tout ce que je fais par semaine. Je souhaiterai regrouper les données pour, à terme, regrouper les informations par clients pour avoir une liste des tâche effectuées par dossiers.
Mon idée est d'enregistrer une macro pour exporter les données intéressantes dans un autre tableur. Une fois regroupée, je les mets en tableau croisé dynamique.
La macros est bien enregistrée mais ça range les informations toujours à partir de la cellule B2. Moi je voudrai que ça puisse être mis à la suite chaque fois.
Est-il possible de faire en sorte de changer dans la macro B2 par quelque chose comme "dans la première ligne disponible de la colonne B"? Si oui, comment faire? Et si vous avez des solutions plus simples ou intéressantes, je suis preneur.

D'avance merci à tous.

5 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    Pour trouver la 1° ligne vide dans une colonne

    S=i la celle B1 est toujours occupée
    Lig = Columns("B").Find("", range("B1")).Row

    si la cellule B1 peut ^tre vide
    Lig = Columns("B").Find("", Cells(Cells.Rows.Count, "B")).Row
    0
  2. Dioups Messages postés 13 Statut Membre 2
     
    Merci Michel pour la réponse.

    Pour te répondre, la ligne sera toujours remplie, hormis la première fois.

    Par contre, entre temps, j'ai changé de ligne pour insérer les boutons. La première ligne à remplir est maintenant B6. Est-ce que ça modifie ta réponse?

    Je ne sais pas non plus à quel niveau il faut insérer ce que tu m'as dit. Voici ce que ça donne :

    Sub EXPORT()
    '
    ' EXPORT Macro
    '

    '
    Range("B9:B120,H9:K120").Select
    Range("H120").Activate
    Selection.Copy
    Windows("Classeur base TCD.xlsm").Activate
    Range("B6").Select
    ActiveSheet.Paste
    Windows("Classeur Temps 3.0 tests.xlsx").Activate
    Range("A1:B1").Select
    Application.CutCopyMode = False
    End Sub


    Question bonus :

    Concrètement, comment fait-on pour apprendre à faire ce genre de chose? Est-ce "simplement" une sorte d'autre langage ou autre? Apprendre à faire des macros est vraiment un truc que je voudrais faire mais ça me paraît tellement énorme que je ne sais pas par où commencer ! AAvez-vous de pistes ?
    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Option Explicit
    Sub transfert()
    Dim Xxx As Variant, Lig As Integer 'préciser type de vaiable de xxx
    Xxx = Range("H120")
    Windows("Classeur base TCD.xlsm").Activate
    With Sheet("feuil1") 'A adapter au contexte
    Lig = .Columns("B").Find(what:="", after:=.Range("B6")).Row
    Range("B" & Lig) = Xxx
    End With
    Windows("Classeur Temps 3.0 tests.xlsx").Activate
    End Sub


    Pour commencer à apprendre VBA
    regarde de ce coté: très cool et pédagogique
    http://www.info-3000.com/vbvba/
    0
  4. Dioups Messages postés 13 Statut Membre 2
     
    Merci pour ta réponse et pardon pour le temps de réponse me concernant. Le début de semaine a été speed!

    Par contre, je le mets où ça car je vois bien le "end sub" mais pas le "sub export"? Et, te serait-il possible de me l'expliquer pour que je vois en gros ce que tu as fait STP? Si tu me réponds que je gourmand et chi***, je comprendrais!

    Et merci pour le lien, j'ai regardé en diagonale car je n'avais pas trop de temps mais je m'y pencherais quand je pourrai.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    ..." Par contre, je le mets où ça car je vois bien le "end sub" mais pas le "sub export"? "...

    Ah bon ?
    Si ce n'est trop te demander, lis la 2° ligne du code
    0