Recopier toutes valeurs d'une ligne si présence d'une valeur

Bonjour à tous.

Bon mon sujet de topic est pas très clair donc je m'explique.

J'ai un tableur avec une liste d'industrie, et une liste de polluants.

Donc pour chaque ligne, il y aura bien sur les informations sur l'industrie, et aussi la présence du chiffre 1 ou 2 en dessous d'un polluant si celui ci est présent dans l'industrie.

Je voudrais donc, à l'aide d'une formule, recopier la liste de tous les polluants présent dans une industrie, et ce, dans une seule et même case. Donc par exemple, si un 2 est présent dans la colonne de l'arsenic et celle du mercure, je voudrais qu'il m'indique dans la dernière case "Arsenic, Mercure" .

Est-ce possible, ou tout simplement inconcevable ?

Cordialement,

Yennaiv

Bonjour Yennaiv,

Bon mon sujet de topic est pas très clair donc je m'explique.

Pour que ce soit encore plus clair

A+

Vous pourrez trouver un exemple en pièce jointe, avec 2 sites différents. L'objectif sera de recopier les polluants présents dans chaque site dans la case prévue à cet effet.

Merci d'avance

Voici une proposition avec une fonction personnelle

A+

Merci bien, c'est pile ce qu'il me fallait, bien que j'ai du faire quelques modif vu que ta méthode ne prenait pas en compte les 1.

Aurais-tu le temps de m'expliquer la méthodologie utilisée? Car j'ai eu beau chercher, je n'ai pas trouvé comment tu t'es arrangé pour que le "=ResumePolluant(AX)" marche...

Merci encore

j'ai du faire quelques modif vu que ta méthode ne prenait pas en compte les 1.

J'avais compris que la présence polluant était identifié par le chiffre 2.

La communication sans le son et l'image, ce n'est pas évident

Pour t'expliquer comment marche ResumePolluant(x), ce n'est pas plus facile.

Il me sera plus facile de t'expliquer ce que tu ne comprends pas.

Voici le code commenté. A toi de me dire les points bloquants.

Function ResumePolluant(Site As Range)
Dim DerCol As Integer
Dim i As Long
Dim Texte As String
    'On recalcule chaque fois qu'un calcul est effectué dans une cellule quelconque de la feuille
    Application.Volatile
    'On détermine le numéro de la dernière colonne renseignée
    DerCol = Cells(Site.Row, Columns.Count).End(xlToLeft).Column
    'Si ce numéro est supérieur à 2 (il y a alors une ou plusieurs cellules renseignées après la colonne B)
    If DerCol > 2 Then
        'on recherche la présence du chiffre 2 dans les cellules de la ligne
        For i = 3 To DerCol
            If Cells(Site.Row, i) = 2 Then
                'On note le nom du polluant
                Texte = Texte & Cells(1, i) & Chr(10)
            End If
        Next i
    End If
    'La fonction retourne la liste de tous les polluants
    ResumePolluant = Texte
End Function

En gros tu crées ta propre fonction, avec la description précise de tes attentes. Mais pour ça il faut quand même connaitre les bases de ce langages ^^'

Du coup, comment as-tu créé cette fonction ? En gros ou faut-il aller pour rentrer ce script?

Mais pour ça il faut quand même connaitre les bases de ce langage

Je te confirme qu'il faut connaitre les bases de VBA Excel.

Le code est visible dans l'éditeur (VBE) auquel tu peux accéder par appui sur les touches Alt + F11.

Ensuite, il faut ouvrir l'explorateur de projets (onglet Affichage > Explorateur de projets ou touches CTRL + R).

Tu verras alors le Module1 qui contient le code.

A+

Rechercher des sujets similaires à "recopier toutes valeurs ligne presence valeur"