Creation tableau

Résolu
Signaler
Messages postés
14
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
30 septembre 2009
-
Messages postés
14
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
30 septembre 2009
-
Bonjour,
je souhaiterai créer un tableau de résumé sur une page de mon classeur Excel.

Les valeurs de ce tableau sont contenues dans les autres pages, à partir de la troisième, dans le même classeur.

Il s'agit de valeurs qui sont dans des cellules toujours placées aux m^meme emplacements dans toutes les pages concernées.

Mes contraintes sont que le nombre de pages à prendre en compte est variable et que je ne peux pas nommer ces cellules parce que chaque page ajoutée dans le classeur est une copie d'un modèle faisant aussi parti du classeur.

Je souhaiterai ecrire une procedure qui permet d'ajouter, au tableau de résumé avec autant de lignes qu'il y a de feuilles concernées sachant que chaque ligne contiendra les valeurs des différentes cellules (range défini) de chaque feuilles

Par exemple 3 feuilles contenant chacunes des valeurs différentes dans les cellules A2, B5, B6 et C8 à regrouper en un tableau du type:
    - Ligne 2 pour la feuille 1 et  contient A2.value en B11, B5.value en C11, B6.value en D11et C8.Value en E11
    - Ligne 3 pour la feuille 2 et  contient A2.value en B12, B5.value en C12, B6.value en D12et C8.Value en E12
       et ainsi de suite pour l'ensemble des feuilles.

Je pense que UBound est peut-etre la solution mais je ne sais comment faire ?

Merci d'avance pour votre aide,

2 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

tu peux boucler sur les feuilles présentes, effectivement avec UBound, mais aussi avec la propriété Count de l'objet Sheets :

Dim i as integer, iLine as integer

iLine = 11
For i = 3 to Sheets.Count
    Cells(iLine, 2).Value = Sheets(i).Range("A2").Value
    Cells(iLine, 3).Value = Sheets(i).Range("B5").Value
    Cells(iLine, 4).Value = Sheets(i).Range("B6").Value
    Cells(iLine, 5).Value = Sheets(i).Range("C8").Value
    iLine = iLine + 1
Next i

En gros, ça devrait être ça

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
14
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
30 septembre 2009

Merci beaucoup.

Cette approche me parait plus simple à metttre en oeuvre , pour moi en tous cas, que UBound .