Récupérer les informations d'une feuille

pitch02 Messages postés 44 Statut Membre -  
DjiDji59430 Messages postés 4278 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous, je rencontre un problème sous Excel.

J'ai dans mon ficher des feuilles allants de 1 à 100 (F1, F2 ... F100).

Je souhaite sur une feuille que j'ai nommé F0, récupérer sous forme de tableau les valeurs présentes dans les cases E8, J8 et O8 de chacune de mes feuilles (F1 à F100).

Cela est-il possible ?

Merci d'avance

3 réponses

  1. DjiDji59430 Messages postés 4278 Date d'inscription   Statut Membre Dernière intervention   717
     
    Bonjour,

    tu fais une liste a1=f0......a100=f100
    en b1
    =indirect(a1&"!e8") que tu descends

    et bis repetita !

    Crdlmt
    0
    1. pitch02 Messages postés 44 Statut Membre
       
      Bonjour,

      Merci pour cette réponse

      Si j'ai bien compris je tape dans la cellule a1=f1 puis a2=f2 ... a100=f100.
      Puis je tape =indirect(a1&"!e8") dans b1 ?
      0
    2. DjiDji59430 Messages postés 4278 Date d'inscription   Statut Membre Dernière intervention   717
       
      Oui t'as bien compris , et tu descends jusqu' a b100

      tuto :
      https://www.cjoint.com/c/HIonodV1SZZ
      0
    3. pitch02 Messages postés 44 Statut Membre
       
      Si je tape =f1 dans la cellule a1 j'obtiens la valeur de la cellule f1 de ma feuille actuelle.
      0
    4. DjiDji59430 Messages postés 4278 Date d'inscription   Statut Membre Dernière intervention   717
       
      faut pas mettre = il faut que ça reste du texte (dans mon tuto , je n'ai pas taper =f1) seulement f1
      0
    5. pitch02 Messages postés 44 Statut Membre
       
      Ce que je souhaite en réalité c'est récupérer les données d'autres onglets.
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    ou en vba:

    Dim Ws As Worksheet
    Dim DerniereLigneUtilisee As Long
    Sheets("FO").Range("E1").Value = "En-tete"
    Sheets("FO").Range("J1").Value = "En-tete"
    Sheets("FO").Range("O1").Value = "En-tete"
    DerniereLigneUtilisee = Sheets("FO").Range("E" & Rows.Count).End(xlUp).Row + 1 ' + 1 = 1ère ligne vide
    For Each Ws In Worksheets
           If Ws.Name = "FO" Then
           Else
           Sheets("FO").Range("E" & DerniereLigneUtilisee).Value = Sheets(Ws.Name).Range("E8").Value
           Sheets("FO").Range("J" & DerniereLigneUtilisee).Value = Sheets(Ws.Name).Range("J8").Value
           Sheets("FO").Range("O" & DerniereLigneUtilisee).Value = Sheets(Ws.Name).Range("O8").Value
         DerniereLigneUtilisee = DerniereLigneUtilisee + 1
       End If
        Next Ws


    0
    1. pitch02 Messages postés 44 Statut Membre
       
      Bonjour je ne sais pas du tout codé en VBA, où dois-je insérer ce code ?

      Merci
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Ce mettre sur la feuille concernée FO, Faire Alt F11 pour accéder à l'éditeur et mettre ce code:

      Option Explicit
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
      lancermacro
      End If
      End Sub
      Private Sub lancermacro()
      Dim Ws As Worksheet
      Dim DerniereLigneUtilisee As Long
      Sheets("FO").Range("E1").Value = "En-tete"
      Sheets("FO").Range("J1").Value = "En-tete"
      Sheets("FO").Range("O1").Value = "En-tete"
      DerniereLigneUtilisee = Sheets("FO").Range("E" & Rows.Count).End(xlUp).Row + 1 ' + 1 = 1ère ligne vide
      Application.ScreenUpdating = False
      For Each Ws In Worksheets
             If Ws.Name = "FO" Then
             Else
             Sheets("FO").Range("E" & DerniereLigneUtilisee).Value = Sheets(Ws.Name).Range("E8").Value
             Sheets("FO").Range("J" & DerniereLigneUtilisee).Value = Sheets(Ws.Name).Range("J8").Value
             Sheets("FO").Range("O" & DerniereLigneUtilisee).Value = Sheets(Ws.Name).Range("O8").Value
           DerniereLigneUtilisee = DerniereLigneUtilisee + 1
         End If
          Next Ws
      Application.ScreenUpdating = True
      End Sub
      
      


      a chaque sélection de A1 la macro sera déclenchée

      Ensuite enregistrer: Classeur Excel prenant en charge les macros


      Voilà
      0
  3. pitch02 Messages postés 44 Statut Membre
     
    Merci pour vos réponses.

    Je pense que je n'ai pas été clair sur mon problème.

    Je souhaite dans la feuille F0 pouvoir récupérer les données présentes dans les cases E8, J8 et O8 des autres feuilles allant de F1 à F100. De façon à avoir un tableau avec les différentes valeurs dans cette feuille F0.
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      C'est ce que fait cette macro avec les en-têtes en E1, J1 et O1 et les données de toutes les feuilles dans les colonnes E, J et O. Mais l'on peut changer les destinations, c'est à toi de le dire!
      0
    2. pitch02 Messages postés 44 Statut Membre
       
      D'accord je dois mal m'y prendre. Je vais regarder quelques tutos sur la création des macros afin de mieux cerner ces dernières.

      Merci pour ton aide.
      0
    3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Voici un exemple:

      https://www.cjoint.com/c/HIooeIfiVoQ

      @+
      0