Réduction de tableau

Bonjour,

Ma situation est la suivante. J'ai un tableau de données sur une feuille excel, pour faciliter les choses disons que mon tableau fait 100 lignes et 2 colonnes.

La première colonne reprend une série d'ingrédient et la seconde le nombre de gramme pour chacun des ingrédients.

Etant donné que certains ingrédients ont une valeur nulle (A chaque fichier sa recette et donc ses ingrédients), j'aimerais créer un nouveau tableau à partir du premier qui ne reprend que les ingrédients qui ont une valeur non nulle et sans leur grammage, juste leur nom.

Je ne suis pas familier avec le language VBA ni l'implémentation de formule, mais je m'y connais un peu en java.

Mon idée serai donc de faire quelque chose du genre :

Fonction ( ???)

tab (i,j) =mon tableau de base

Newtab (z) = mon nouveau tableau qui aurait un nombre de ligne Z encore indéfini et une seule colonne

Je voudrais démarrer avec i = 1 et Z = 1

et j'aurais quelque chose du genre :

For (i <101) { %% mon tableau initiale ayant une longueur de 100

If (tab(i,2) > 0) {

Newtab(z) = tab (j;1) %% Si le grammage de l'ingrédient est >0 alors mon nouveau tableau enregistre le nom de l'ingrédient)

i = i+1 ; z = Z+1 %% je passe à la ligne suivante dans mes 2 tableaux}

Else

i = i+1 %% je ne fais rien à part incrémenter mon i pour refaire le test sur la ligne suivante

END

Voilà j'espère que c'est clair et que quelqu'un pourra m'aider

Salut,

Cette macro copie ton tableau d'origine dans une nouvelle feuille et le réduit:

Sub reduc_tab()

Dim i As Integer
Dim Nbreligne As Integer

ActiveSheet.UsedRange.Select
Selection.Copy

Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "tableau réduit"

Range("A1").Select
ActiveSheet.Paste

Nbreligne = ActiveSheet.UsedRange.Rows.Count

For i = 1 To Nbreligne
    If IsEmpty(Cells(i, 2)) = True Or Cells(i, 2).Value = 0 Then
        Rows(i & ":" & i).Delete
    End If
Next i

End Sub

Espérant t'avoir aidé

Hello !

Et sans macro, tu peux utiliser un TCD avec un filtre sur la quantité !

Je suis encore un gros débutant dans excel donc je ne sais pas encore trop comment implémenter une macro ?

Re,

Tu te mets sur ton fichier excel, tu appuies sur Alt+F11

Sur la fenêtre qui apparait dans la liste des dossiers à gauche tu fais un clic droit sur VBAProject (nom de ton fichier) /insertion/ module

dans le module que tu as crée tu colles le code sur la partie blanche à droite puis tu appuies sur le bouton play vert en haut.

Attention la macro suppose que les quantités d'ingrédients sont dans la colonne 2. Si ce n'est pas le cas remplacer le 2 dans cette ligne du code par le vrai numéro de ta colonne

If IsEmpty(Cells(i, 2)) = True Or Cells(i, 2).Value = 0 Then

Parfait ! Merci

Rechercher des sujets similaires à "reduction tableau"