Macro afficher valeur d'une cellule si valeur d'une autre cellule > 4

julienloubeyre

XLDnaute Nouveau
Bonjour à tous,

Malgré de nombreuses recherches, je ne parviens pas à trouver ce que je cherche.
J'espérais pouvoir faire ce que je cherche avec de simples formules, mais ce n'est apparement pas possible.

Vous allez sans doute pouvoir m'aider.

j'ai un tableau excel (confidentiel) dans lequel se trouvent 3 feuilles de travail: SLA1, SLA2 et résultats.

Dans les feuilles SLA1 et 2, des types de prestation (simples, basiques, normales, complexes) en colonne A
en colonne B, les numéros de suivi affectés a ces prestations.
En colonne K, des temps de réalisation en jour ou heure.
Les informations présentes dans les autres colonnes ne sont pas nécessaires pour cette Macro.

Dans la feuille résultat, j'aimerais grâce à une macro afficher dans une cellule le numéro d'une prestation si son temps de réalisation est supérieur a un temps donné (par exemple 1 heure ou 3 jours).

Il se peut bien sur que plusieurs prestations correspondent aux critères, et il faudrait donc que tous les numéros de ces prestations soient affichés dans la cellule de destination.

J'espère avoir été assez clair, et dois avouer que mes connaissances en macro sont nulles.

Votre aide à tous sera vivement appréciée.

Merci d'avance,
Julien
 

julienloubeyre

XLDnaute Nouveau
Re : Macro afficher valeur d'une cellule si valeur d'une autre cellule > 4

Bonjour,

Mes recherches m'ont conduit à la macro suivante, qui fonctionne parfaitement bien, même si elle a sans doute besoin d'être optimisée.

Code:
Sub calc4()
    Dim ligne As Long
    With Sheets("SLA5")
        For ligne = 2 To .Range("A" & Rows.Count).End(xlUp).Row
            If .Range("I" & ligne) > 1 And .Range("C" & ligne) = "Basique" Then
                .Range("A" & ligne & ":K" & ligne).Copy _
                        Sheets("Analyse SLA5").Cells(Rows.Count, 10).End(xlUp)(2).Resize(, 4)
            ElseIf .Range("I" & ligne) > 1 And .Range("C" & ligne) = "Simple" Then
                .Range("A" & ligne & ":K" & ligne).Copy _
                        Sheets("Analyse SLA5").Cells(Rows.Count, 10).End(xlUp)(2).Resize(, 4)
            ElseIf .Range("I" & ligne) > 2 And .Range("C" & ligne) = "Normale" Then
                .Range("A" & ligne & ":K" & ligne).Copy _
                        Sheets("Analyse SLA5").Cells(Rows.Count, 10).End(xlUp)(2).Resize(, 4)
            ElseIf .Range("I" & ligne) > 5 And .Range("C" & ligne) = "Complexe" Then
                .Range("A" & ligne & ":K" & ligne).Copy _
                        Sheets("Analyse SLA5").Cells(Rows.Count, 10).End(xlUp)(2).Resize(, 4)
            End If
        Next ligne
    End With
End Sub

Cela fonctionne bien avec des valeurs chiffrées, comme 1 ou 5 jours.

Par contre, cela ne fonctionne pas avec des valeurs horaires (4:12 par exemple).

Pouvez-vous m'aider à trouver comment procéder?

D'avance merci,

Julien Loubeyre
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16