Récupérer les informations d'une feuille

Fermé
pitch02 Messages postés 43 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 14 septembre 2018 - 14 sept. 2018 à 10:44
DjiDji59430 Messages postés 4031 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 22 avril 2024 - 14 sept. 2018 à 18:08
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

DjiDji59430 Messages postés 4031 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 22 avril 2024 644
14 sept. 2018 à 12:03
Bonjour,

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

et bis repetita !


Crdlmt
0
pitch02 Messages postés 43 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 14 septembre 2018
14 sept. 2018 à 12:18
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
DjiDji59430 Messages postés 4031 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 22 avril 2024 644
Modifié le 14 sept. 2018 à 15:14
Oui t'as bien compris , et tu descends jusqu' a b100

tuto :
https://www.cjoint.com/c/HIonodV1SZZ
0
pitch02 Messages postés 43 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 14 septembre 2018
14 sept. 2018 à 15:18
Si je tape =f1 dans la cellule a1 j'obtiens la valeur de la cellule f1 de ma feuille actuelle.
0
DjiDji59430 Messages postés 4031 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 22 avril 2024 644
Modifié le 14 sept. 2018 à 15:28
faut pas mettre = il faut que ça reste du texte (dans mon tuto , je n'ai pas taper =f1) seulement f1
0
pitch02 Messages postés 43 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 14 septembre 2018
14 sept. 2018 à 15:52
Ce que je souhaite en réalité c'est récupérer les données d'autres onglets.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié le 14 sept. 2018 à 12:17
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
pitch02 Messages postés 43 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 14 septembre 2018
14 sept. 2018 à 12:42
Bonjour je ne sais pas du tout codé en VBA, où dois-je insérer ce code ?

Merci
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié le 14 sept. 2018 à 14:17
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
pitch02 Messages postés 43 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 14 septembre 2018
14 sept. 2018 à 14:31
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié le 14 sept. 2018 à 14:37
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
pitch02 Messages postés 43 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 14 septembre 2018
Modifié le 14 sept. 2018 à 14:43
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
14 sept. 2018 à 16:05
Voici un exemple:

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

@+
0