Fusion deux formules + question macro

Bonjour à tous,

Je suis entrain de créer un outil de suivi sur Excel.

J'ai deux problématiques ou je suis aujourd'hui sans solution.

1- J'aimerai fusionner 2 formules en une seule.

=SI(D3<>"";RECHERCHEV(D3;'Données d''entrée'!A2:AA2001;2;FAUX);"")

=SI(D3<>"";SI('Fin de travaux'!J3<AUJOURDHUI();"En retard";"En cours");"")

J'aimerai qu'il aille me chercher l'information uniquement et seulement si la date de fin de travaux est inférieur à la date d'aujourd'hui. Le but est de ne plus jouer avec les filtres.

2- J'aimerai faire une macro. J'aimerai qu'elle applique une formule comme celle ci dessous sur l'ensemble des onglets et à partir d'un ficher.

=SI(D3<>"";RECHERCHEV(D3;'Données d''entrée'!A2:AA2001;2;FAUX);"")

Je vous remercie de votre aide.

Cordialement.

Bonsoir,

Pour ta première question, teste ceci :

=SI(D3<>"";SI('Fin de travaux'!J3<AUJOURDHUI();RECHERCHEV(D3;'Données d''entrée'!A2:AA2001;2;FAUX);"En cours");"")

Pour la seconde :

ActiveCell.Formula = "=IF(D3<>"",VLOOKUP(D3,'Données d''entrée'!A2:AA2001,2,FALSE),"")"

Bonjour,

Merci pour les informations.

=SI(D3<>"";SI('Fin de travaux'!J3<AUJOURDHUI();RECHERCHEV(D3;'Données d''entrée'!A2:AA2001;2;FAUX);"En cours");"")

La formule fonctionne par contre comment lui dire de ne pas copier la ligne si la date est inférieur à la date d'aujourd'hui ? Pour l'instant la formule me fait apparaitre "en cours".

ActiveCell.Formula = "=IF(D3<>"",VLOOKUP(D3,'Données d''entrée'!A2:AA2001,2,FALSE),"")"

Je n'arrive pas à faire fonctionner la formule.

Si je demande au fichier "Suivi ET" de récupérer les informations dans une colonne "Commentaires" dans le fichier "Suivi ET antérieur" si l'information qui recherche est vraie.

Dim iET-1 As Integer

        Dim iET As Integer

        Dim ET-1 As Worksheet

        Dim ET As Worksheet

        Set ET-1 = Worksheets("Suivi ET antérieur")

        Set ET = Worksheets("Suivi ET")

        iET = 2

        For iET = 2 To 2000

        ActiveCell.Formula = "=IF(D3<>"";VLOOKUP(D3;'[Outil Suivi ET -1.xlsx]Passage en Comdep'!$D$1:$M$2094;10;FALSE");"")

        End If

mais ça ne marche pas

Bonjour,

La formule fonctionne par contre comment lui dire de ne pas copier la ligne si la date est inférieur à la date d'aujourd'hui ? Pour l'instant la formule me fait apparaitre "en cours".

La formule fonctionne de la manière suivante :

=SI(D3 n'est pas vide ; SI(la date située en J3 est inférieure à AUJOURDHUI() ; effectue la recherche avec correspondance exacte en colonne A du tableau et retourne la valeur située en colonne B ; par contre, si la date est égale ou supérieure, "En cours" est retourné); et si D3 est vide, retourne une chaîne vide "")

Dans celle-ci-dessous :

=SI(D3<>"";SI('Fin de travaux'!J3<AUJOURDHUI();"";RECHERCHEV(D3;'Données d''entrée'!A2:AA2001;2;FAUX));"")

c'est à peut près le contraire, si la date en J3 est supérieure ou égale à aujourd'hui une valeur est retournée par la recherche sinon, une chaîne vide sera retournée de même si D3 est vide !

Je n'arrive pas à faire fonctionner la formule.

Si je demande au fichier "Suivi ET" de récupérer les informations dans une colonne "Commentaires" dans le fichier "Suivi ET antérieur" si l'information qui recherche est vraie.

Je ne comprend pas vraiment ce que tu demandes mais j'ai rectifié ta boucle.

Saches que le tiret du 6 (signe moins) est interdit dans les noms de variables et quand on souhaite intégrer des guillemets dans une formule (ou même une chaîne) en VBA vers Excel, il faut les doubler. Pour la boucle voir explications dans le code :

Sub Test()

    Dim iET As Integer

    For iET = 2 To 2000

        'quand des guillemets doivent être entrés dans une formule, il faut les doubler !
        'ici, je suppose que c'est en colonne A que doivent se trouver les 1998 formules et que la cellule de départ est la cellule D3

        Range("A" & iET).Formula = "=IF(D" & iET + 1 & "<>"""",VLOOKUP(D" & iET + 1 & ",'[Outil Suivi ET -1.xlsx]Passage en Comdep'!$D$1:$M$2094,10,FALSE),"""")"

    Next iET

End Sub

Je te remercie pour ton retour.

=SI(D3<>"";SI('Fin de travaux'!J3<AUJOURDHUI();"";RECHERCHEV(D3;'Données d''entrée'!A2:AA2001;2;FAUX));"")

Nickel. J'ai compris la construction de la formule et j'ai pu faire ce que je voulais par la suite. Top !!

Sub Test()

Dim iET As Integer

For iET = 2 To 2000

'quand des guillemets doivent être entrés dans une formule, il faut les doubler !

'ici, je suppose que c'est en colonne A que doivent se trouver les 1998 formules et que la cellule de départ est la cellule D3

Range("A" & iET).Formula = "=IF(D" & iET + 1 & "<>"""",VLOOKUP(D" & iET + 1 & ",'[Outil Suivi ET -1.xlsx]Passage en Comdep'!$D$1:$M$2094,10,FALSE),"""")"

Next iET

End Sub

Je n'arrive pas à faire fonctionner la macro et à chaque fois qu'il va me cherche l'information. Il me la copie dans une case puis me demande immédiatement une sauvegarde. J'ai du lui dire également le fichier ou il devait sélectionner l'information.

Je ne comprend pas vraiment ce que tu demandes mais j'ai rectifié ta boucle.

J'ai deux fichiers, que je vais nommer "A" & "B".

Je souhaite récupérer des informations dans le fichier "A" uniquement et seulement si "le code barre" présent dans le fichier B est également présent dans le fichier A . Si c'est le cas. Il me copiera l'information, se trouvant à la colonne 10.

J'aimerai également qui me scanne le code barre du fichier B sur les 2000 lignes.

Je te remercie d'avance de ton aide.

Je continue à chercher.

Sub Commentaires()

Dim fich$, feuil$, Cell As Range

fich = "O:\IDR\Domaine ET\Suivi programme ET\Outils\Outil en construction\B.xlsx"

feuil = "Passage en Comdep"

Range("M" & A).Formula = "=IF(D" & b & "<>"""",VLOOKUP(D" & A & ",'Passage en Comdep'!$D$1:$M$2094,10,FALSE),"""")"

End Sub

Il m'indique que j'ai une erreur sur la ligne feuil.

Bonjour,

Voici ton code modifié, il va probablement te falloir adapter :

Sub Commentaires()

    Dim Chemin As String
    Dim Classeur As String
    Dim Feuille As String
    Dim I As Integer

    Chemin = "O:\IDR\Domaine ET\Suivi programme ET\Outils\Outil en construction\"

    Classeur = "B.xlsx"

    Feuille = "Passage en Comdep"

    For I = 2 To 2000

        Range("M" & I).Formula = "=IF(D" & I & "<>"""",VLOOKUP(D" & I & ",'" & Chemin & "[" & Classeur & "]" & Feuille & "'!$D$1:$M$2094,10,FALSE),"""")"

    Next I

End Sub
Rechercher des sujets similaires à "fusion deux formules question macro"