Synthèse d'un tableau conportant des cases vides

Bonjour

Voici mon problème : je dispose d'un tableau dont la colonne A répertorie une liste de locaux, la ligne 1 une liste d'équipements, et dans le tableau sont renseignées les quantités de chaque équipements présents dans chaque local (si un équipement ne figure pas dans un local, la cellule est vide). J'aimerai pouvoir faire la synthèse de tous ces équipements par local (tout en conservant les quantités), autrement dit obtenir un tableau me récapitulant : Le nom du local (colonne A), l'intitulé de l'équipement (Ligne 1), et la quantité (Cellule (i,j)). En gros, je voudrais que pour chaque case non vide de mon tableau (appelons la (i,j) ), la macro fasse une extraction sur 3 cellules tel que : Cellule 1 = [i,1] / Cellule 2 = [1,j] / Cellule 3 = [i,j]

J'ai essayé sans succès plusieurs choses, et la dernière version de mon code est la suivante : (Nota : mon fichier comtenant le tableau s'appelle "MAJ Equipements cfo.xls")

Sub macro1()

'GENERAL

Dim x As Byte

Dim y As Integer

Dim numero_ligne As Integer

numero_ligne = 2

'Remise à zéro de la feuille

Workbooks("macrocfo.xlsm").Worksheets("Feuil1").Activate

Rows("2:5000").Delete

'Recherche des equipements présents dans un local

For x = 3 To 14 Je dois analyser les feuilles 3 à 14 de mon classeur

Workbooks("MAJ Equipements cfo.xls").Worksheets(x).Activate

For i = 2 To 542 Step 1 Le nombre de ligne de la feuille la plus longue est 542

For j = 2 To 119 Step 1 Le nombre de colonne de la feuille la plus longue est 119

If Cells(i, j) >= 0 Then

Workbooks("macrocfo.xlsm").Worksheets("Feuil1").Activate

Workbooks("macrocfo.xlsm").Worksheets("Feuil1").Range(numero_ligne, 1).Value = Workbooks("MAJ Equipements cfo.xls").Worksheets(x).Range(i, 2).Value

Workbooks("macrocfo.xlsm").Worksheets("Feuil1").Range(numero_ligne, 2).Value = Workbooks("MAJ Equipements cfo.xls").Worksheets(x).Range(3, j).Value

Workbooks("macrocfo.xlsm").Worksheets("Feuil1").Range(numero_ligne, 3).Value = Workbooks("MAJ Equipements cfo.xls").Worksheets(x).Range(i, j).Value

numero_ligne = numero_ligne + 1

Exit For

End If

Next j

Exit For

Next i

Next x

End Sub

Merci d'avance à celui ou celle qui pourra me venir en aide.

Bonjour

Il serait souhaitable que tu fournisses un fichier représentatif de ton fichier réel

A te lire

Voici mon fichier simplifié, je n'ai gardé que 2 feuilles et ai créé une feuille avec le résultat escompté.

Merci d'avance pour vos remarques.

11exemple-macro.xlsx (161.51 Ko)

Bonjour

A vérifier

La macro va de la page 2 à 3

Merci beaucoup, c'est tout à fait ce que j'espérais !

Bonne journée à vous, au plaisir !

Rechercher des sujets similaires à "synthese tableau conportant cases vides"