Remplacer une valeur sous condition

Bonjour,

J'espère que vous pourrez m'apporter votre aide sur ce sujet. J'ai un tableau excel de saisie de temps. Je souhaite dans ce tableau rechercher les valeurs supérieur à 10 (heures) dans les colonnes "S*" et "D". Si ces valeurs sont supérieures à 10 je souhaite remplacer la valeur dans la colonne "sem*" de la ligne correspondante par la valeur initialement contenu dans la cellule de la colonne Sem* + la valeur contenue dans la cellule des colonnes "s* ou "d*" si supérieur à 10.

J'espère que c'est plus moins claire. Je voulais commencer à appliquer cela:

Sub Conversion()

Dim Cell As Range

Application.ScreenUpdating = False

For Each Cell In Range("A1:BB70")

If Cell.Value > 10 Then

If Cells(4, Cell.Column).Value < Range("S*", "D*").Value Then .... mais ensuite je ne sais pas comment continuer.

Merci par avance,

Bonjour

Tu devrais ajouter une feuille dans ton fichier en y représentant ce que tu voudrais obtenir à partir de la première feuille.

Bye !

Voici un second fichier avec en seconde page une petite explication de ce que je souhaite.

Merci beaucoup.

En fait les deux questions/posts ouverts sur le forum à propos de ce fichier sont en lien, je veux dans un premier temps mettre les bons totaux d'heures travaillées par semaine dans la colonne sem* incluant d'éventuels coefficients si des heures ont été travaillées durant le week end. Et ensuite je ne veux garder des les colonnes sem* et ça marche super bien avec ce que m'a déjà proposé.

Bonjour

Nouvelle version.

Bye !

Génial, ça marche super bien, il ne me reste plus qu'à faire une somme sous condition et ça va fonctionner parfaitement. Merci beaucoup!

Arf je viens de remarquer que lorsqu'il n'y a qu'un seul jour dans un mois après l'intitulé Sem", il y a un bug au niveau de la commande Do While Not tablo(1, col+j) Like "Sem-*". Le problème ne se pose pas pour les fins de mois avec au minimum deux jours après l'intitulé sem.Et je ne comprends pas trop pourquoi et commencer lui annoncer qu'il peu parfois n'y avoir qu'un seul jour à comptabiliser. Exemple dans le tableau en PJ, les commandes marchent très bien pour les onglets Mars, Mai et Juin mais pas pour l'onglet Avril. C'est de la bidouille mais la solution peut être de rajouter une colonne avec la valeur 0 dans toutes les cellules de la dernière colonne? Merci

Bonjour

la solution peut être de rajouter une colonne avec la valeur 0 dans toutes les cellules de la dernière colonne?

Si ça marche et que ça te convient, inutile de chercher plus loin...

Bye !

Oui en effet ca bidouille mais ça fontionne. Je voulais tester ca pour compter le nombre de jours travaillés dans une semaine mais ça ne fonctionne pas et je ne vois pas vraiment pk. Si vous une idee?

Sub Nombrejourstravaillésparsemaine()

Dim derln As String

Dim i As Integer

Application.ScreenUpdating = False

dercol = Cells(4, Columns.Count).End(xlToLeft).Column

derln = Range("A" & Rows.Count).End(xlUp).Row

tablo = Range(Cells(4, 1), Cells(derln, dercol))

For col = 2 To UBound(tablo, 2)

If tablo(1, col) Like "Sem-*" Then

For i = 2 To UBound(tablo, 1)

tablo(i, col) = 0

colD = col

tablo(i, colD) = Application.WorksheetFunction.Count(CDbl(tablo(i, col + j)))

Next

End If

Next

End Sub

Rien ne se passe.

Merci.

Bonjour

Rien ne se passe.

Normal : tu fais travailler la macro dans une mémoire-tableau et tu ne réinscrit pas le résultat quelque part sur ta feuille de calcuL.

Le ferais-tu que tu serais surpris : les mémoires-tableau ne se comportent pas comme des tableaux de feuille de calcul. On ne peut pas y travailler sur des plages avec des fonctions comme « WorksheetFunction »

Il faut passer chaque valeur et incrémenter ou pas un compteur.

Bon courage !

Oui en effet, j'ai ajouté un emplacement pour afficher les résultats mais je ne comprends et ne trouve pas d'infos pour le moment sur quelle fonction je peux utiliser sur des tableaux memoire pour compter des cellules non vides si work.sheet ne fonctionnent pas?

Merci

Quelque chose comme ça :

    cpt = 0
    For Ln = 1 To UBound(tablo, 1)
        If tablo(Ln, 1) <> "" Then
            cpt = cpt + 1
        End If
    Next Ln

Bye !

Rechercher des sujets similaires à "remplacer valeur condition"