Détection cellule à droite et renvoi de résultat

Bonjour, je débute sur VBA et j'aimerai créer une macro qui identifie un statut (cf pièce jointe) et une date.

Sur une même ligne (= pour une réf) Détecter la cellule non vide la plus à droite (que ce soit chaine de caractère, ou une cellule rempli par la couleur grise ou autre) parmi une plage de cellules (les colonnes LECTURE 1, 2, 3 et 4).

En fonction de cette cellule : renvoyer un résultat dans la cellule ‘’Statut’’

Exemple :

Si la cellule‘’ lecture 1’’ est remplie par une date ou une couleur : le résultat renvoyé en colonne Statut est ''Lecture 2" (+ renvoyer cette date en b2)

Si la cellule ‘’lecture 2’’ est remplie, le résultat renvoyé en colonne statut est ''lecture 3""

Est-ce que quelqu'un pourrait m'aider?

8classeur1.xlsm (17.27 Ko)

Mille Merci

Bonjour

Sub ecr()
    With Sheets("Feuil2")
        For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
            For j = 10 To 4 Step -2
                If .Cells(i, j) <> "" Or .Cells(i, j).Interior.ColorIndex <> xlNone Then
                    .Cells(i, 2) = .Cells(1, j)
                    .Cells(i, 3) = Cells(i, j)
                    Exit For
                End If
            Next
        Next
    End With
End Sub
sans titre

MErci wilder

En faite, le statut doit être +1 par rapport a celui selectionné :

Si la cellule Lecture 1 est sélectionnée ==> Statut renvoyé = LECTURE 2 ( et pour la date : c'est plutôt une forecast date = +7jours par rapport à la date de la lecture 1 (pour notre exemple)

Merci beaucoup

Edit : pour les dates , en appliquant ton programme, j'obtiens ces valeurs40887 40827 40860 40830

Je ne comprends pas trop pourquoi vous me parlez de "selectionner" ? Le traitement doit se faire sur une seule ligne ou plusieurs ligne ?

Si il y a document 1

lecture 1 = 1/10/2015

Lecture 2 = 1/12/2015

Dans la colonne date il faut mettre quoi ? 7/10/2015 ? (soit lecture 1 + 7 jours ?) ou doit être lecture 2 + 7 jours ?

Pardon c’est un abus de langage de ma part.

Je veux dire cellule active (=la cellule la plus à droite). Doit renvoyer un message dans la colonne Statut de façon automatique pour le tableau.

Si une cellule est active en colonne Lecture 2 ( le statut est donc de passer en LECTURE 3) et pour cela on a 7jours (par rapport à la date indiqué de la cellule active) Est-ce plus clair ?

Pour mon exemple : le statut du document 1 devrait etre LECTURE 4 (et la date : lecture 3+ 7jours)

Merci !!

Et pour les cellules qui ont une couleur mais pas de date ?

On n'affiche pas de date pour celle ou il y a une couleur

Voilà

5classeur1.xlsm (19.11 Ko)

Je te remercie infiniment !

de rien !

J'ai un peu adapté la macro que tu m'as envoyé pour mon cas pratique (cf joint) mais je ne comprends pas comment sélectionner des cellules précises. (et non un pas de 2, comme sur ta précédente macro). Pourrais -tu m'expliquer comment ajouter des cellules ( mauve sur le doc excel) dans la macro ? Merci

Sub ecr()

With Sheets("Feuil1")

For i = 3 To .Cells(Rows.Count, 1).End(xlUp).Row

For j = 34 To 23 Step XXXXXX

If .Cells(i, j) <> "" Then

.Cells(i, 15) = .Cells(1, j + 2)

.Cells(i, 16) = DateAdd("d", 7, Cells(i, j))

Exit For

ElseIf .Cells(i, j).Interior.ColorIndex <> xlNone Then

.Cells(i, 15) = .Cells(1, j + 2)

Exit For

End If

Next

Next

End With

End Sub

6test-vba3.zip (17.19 Ko)

someone else ?

Thank you !

Il va falloir m'expliquer en détails mais de façon concise ce que vous voulez avec un exemple du résultat escompté parce que là vous passez du coq à l'âne.

Rechercher des sujets similaires à "detection droite renvoi resultat"