Importation excel à la suite

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. Contributeur
    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
    1. 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
      1. Contributeur
        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
        1. 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
          1. Contributeur
            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