OVH Cloud OVH Cloud

une autre condition, si cellule active est sur cellule rouge

5 réponses
Avatar
Daniel Pelletier
Bonjour a tous

Au début de cette macro je voudrais que SI mon curceur est sur la cellule en
rouge (police en rouge)
elle se déplace sur le bon mois(le mois actuel) pour continuer avec les même
condition.
Les mois de "Sept" est placer dessous la cellule en rouge(5 ligne en bas).
cellule en rouge est en ligne K
"Jan" est 5 ligne plus bas en C
"Fév" est 5 ligne plus bas en D
ect....
SI la cellule active est sur un mois elle continue normalement.

Merci beaucoup

Sub COPIE_OK()
If ActiveSheet.Name <> "Aiguilles" Then Exit Sub
Dim Arr
Arr = Array("Jan", "Fév", "Mars", "Avril", "Mai", "Juin", _
"Juillet", "Août", "Sept", "Oct", "nov", "Déc")
If IsError(Application.Match(ActiveCell.Value, Arr, 0)) Or _
Not IsEmpty(ActiveCell(2)) Then
MsgBox "Changez de colonne"
Exit Sub
ElseIf ActiveCell.Value = "Déc" Then
ActiveCell(2, -10).Resize(15, 9).ClearContents
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2, 0).Resize(13).Value
ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
ActiveCell(-5, 1).Select
ElseIf ActiveCell.Value = "Mai" Then
ActiveCell(2, 6).Resize(15, 3).ClearContents
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2, 0).Resize(13).Value
ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
ElseIf ActiveCell.Value = "Jan" Then
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2, 12).Resize(13).Value
ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
Else
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2, 0).Resize(13).Value
ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
End If
End Sub

5 réponses

Avatar
LeSteph
Bonsoir Daniel,
Si j'ai bien compris ajoute ceci au début:

If ActiveCell.Interior.ColorIndex = 3 Then
ActiveCell.Offset(5, 0).Select
End If

LeSteph
"Daniel Pelletier" a écrit dans le message de
news:
Bonjour a tous

Au début de cette macro je voudrais que SI mon curceur est sur la cellule
en

rouge (police en rouge)
elle se déplace sur le bon mois(le mois actuel) pour continuer avec les
même

condition.
Les mois de "Sept" est placer dessous la cellule en rouge(5 ligne en
bas).

cellule en rouge est en ligne K
"Jan" est 5 ligne plus bas en C
"Fév" est 5 ligne plus bas en D
ect....
SI la cellule active est sur un mois elle continue normalement.

Merci beaucoup

Sub COPIE_OK()
If ActiveSheet.Name <> "Aiguilles" Then Exit Sub
Dim Arr
Arr = Array("Jan", "Fév", "Mars", "Avril", "Mai", "Juin", _
"Juillet", "Août", "Sept", "Oct", "nov", "Déc")
If IsError(Application.Match(ActiveCell.Value, Arr, 0)) Or _
Not IsEmpty(ActiveCell(2)) Then
MsgBox "Changez de colonne"
Exit Sub
ElseIf ActiveCell.Value = "Déc" Then
ActiveCell(2, -10).Resize(15, 9).ClearContents
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
ActiveCell(-5, 1).Select
ElseIf ActiveCell.Value = "Mai" Then
ActiveCell(2, 6).Resize(15, 3).ClearContents
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
ElseIf ActiveCell.Value = "Jan" Then
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
12).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
Else
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
End If
End Sub




Avatar
Daniel Pelletier
Je m'explique un peu.

Quand le curseur est sur un des mois ,la macros s'exécute SI il n'y a pas de
cellule vide en dessous du mois
(cela est pour confirmer que l'utilisateur ne recopie pas sur un mois qu'il
a déjà copier).
et tous va mais SI le curseur est sur la cellule rouge je voudrait que l'a
macros s'exécute mais à partir du mois que nous somme présentement avant d'e
finir l'exécution de la macro.(donc la cellule active devient le mois
actif).

Exemple: ci le curseur est a k2 (cellule rouge) la macro s'exécute sous le
mois de Juil qui est I8.

Je ne suis pas assez clair dite moi le je m'expliquerai :-)))

"Daniel Pelletier" a écrit dans le message de
news:
Bonjour a tous

Au début de cette macro je voudrais que SI mon curceur est sur la cellule
en

rouge (police en rouge)
elle se déplace sur le bon mois(le mois actuel) pour continuer avec les
même

condition.
Les mois de "Sept" est placer dessous la cellule en rouge(5 ligne en
bas).

cellule en rouge est en ligne K
"Jan" est 5 ligne plus bas en C
"Fév" est 5 ligne plus bas en D
ect....
SI la cellule active est sur un mois elle continue normalement.

Merci beaucoup

Sub COPIE_OK()
If ActiveSheet.Name <> "Aiguilles" Then Exit Sub
Dim Arr
Arr = Array("Jan", "Fév", "Mars", "Avril", "Mai", "Juin", _
"Juillet", "Août", "Sept", "Oct", "nov", "Déc")
If IsError(Application.Match(ActiveCell.Value, Arr, 0)) Or _
Not IsEmpty(ActiveCell(2)) Then
MsgBox "Changez de colonne"
Exit Sub
ElseIf ActiveCell.Value = "Déc" Then
ActiveCell(2, -10).Resize(15, 9).ClearContents
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
ActiveCell(-5, 1).Select
ElseIf ActiveCell.Value = "Mai" Then
ActiveCell(2, 6).Resize(15, 3).ClearContents
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
ElseIf ActiveCell.Value = "Jan" Then
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
12).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
Else
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
End If
End Sub




Avatar
Daniel Pelletier
Salut LeSteph
Non cela ne va pas
Quand tu ma répondu j'étais a m'expliquer un peu plus
Regarde mes explication ,
il faut que le curseur descende mai il doit choisir le mois que nous somme
!!.

"LeSteph" a écrit dans le message de
news:40f45654$0$15324$
Bonsoir Daniel,
Si j'ai bien compris ajoute ceci au début:

If ActiveCell.Interior.ColorIndex = 3 Then
ActiveCell.Offset(5, 0).Select
End If

LeSteph
"Daniel Pelletier" a écrit dans le message de
news:
Bonjour a tous

Au début de cette macro je voudrais que SI mon curceur est sur la
cellule


en
rouge (police en rouge)
elle se déplace sur le bon mois(le mois actuel) pour continuer avec les
même

condition.
Les mois de "Sept" est placer dessous la cellule en rouge(5 ligne en
bas).

cellule en rouge est en ligne K
"Jan" est 5 ligne plus bas en C
"Fév" est 5 ligne plus bas en D
ect....
SI la cellule active est sur un mois elle continue normalement.

Merci beaucoup

Sub COPIE_OK()
If ActiveSheet.Name <> "Aiguilles" Then Exit Sub
Dim Arr
Arr = Array("Jan", "Fév", "Mars", "Avril", "Mai", "Juin", _
"Juillet", "Août", "Sept", "Oct", "nov", "Déc")
If IsError(Application.Match(ActiveCell.Value, Arr, 0)) Or _
Not IsEmpty(ActiveCell(2)) Then
MsgBox "Changez de colonne"
Exit Sub
ElseIf ActiveCell.Value = "Déc" Then
ActiveCell(2, -10).Resize(15, 9).ClearContents
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
ActiveCell(-5, 1).Select
ElseIf ActiveCell.Value = "Mai" Then
ActiveCell(2, 6).Resize(15, 3).ClearContents
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
ElseIf ActiveCell.Value = "Jan" Then
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
12).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
Else
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
End If
End Sub








Avatar
Daniel Pelletier
Salut LeSteph

Je croix qu'il faut remplacer ActiveCell.Offset(5, 0).Select
par ActiveCell.Offset(5, -9) pour être en avant le mois Jan
et exécuter ActiveCell.Offset(0, ?) le ? devrais être la valeur
en mois de la cellule a1 qui contien =Maintenant sous format "mm"

Comment remplacer le ? :-(

"LeSteph" a écrit dans le message de
news:40f45654$0$15324$
Bonsoir Daniel,
Si j'ai bien compris ajoute ceci au début:

If ActiveCell.Interior.ColorIndex = 3 Then
ActiveCell.Offset(5, 0).Select
End If

LeSteph
"Daniel Pelletier" a écrit dans le message de
news:
Bonjour a tous

Au début de cette macro je voudrais que SI mon curceur est sur la
cellule


en
rouge (police en rouge)
elle se déplace sur le bon mois(le mois actuel) pour continuer avec les
même

condition.
Les mois de "Sept" est placer dessous la cellule en rouge(5 ligne en
bas).

cellule en rouge est en ligne K
"Jan" est 5 ligne plus bas en C
"Fév" est 5 ligne plus bas en D
ect....
SI la cellule active est sur un mois elle continue normalement.

Merci beaucoup

Sub COPIE_OK()
If ActiveSheet.Name <> "Aiguilles" Then Exit Sub
Dim Arr
Arr = Array("Jan", "Fév", "Mars", "Avril", "Mai", "Juin", _
"Juillet", "Août", "Sept", "Oct", "nov", "Déc")
If IsError(Application.Match(ActiveCell.Value, Arr, 0)) Or _
Not IsEmpty(ActiveCell(2)) Then
MsgBox "Changez de colonne"
Exit Sub
ElseIf ActiveCell.Value = "Déc" Then
ActiveCell(2, -10).Resize(15, 9).ClearContents
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
ActiveCell(-5, 1).Select
ElseIf ActiveCell.Value = "Mai" Then
ActiveCell(2, 6).Resize(15, 3).ClearContents
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
ElseIf ActiveCell.Value = "Jan" Then
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
12).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
Else
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
End If
End Sub








Avatar
LeSteph
Bonjour Daniel,
Compris: En A1 lemois
quelquepart (surlaligne K?) colonne K plutôt! une cellule rougel
le offset doit décaler de 5 par rapport à activecell on l'a vu ça c'est ok!
il te manque la formule pour décaler sur le mois en fonction de la date
fixée en A1 au format date, donc on glisserait plutôt:

Dim monmois as integer
monmois=month(range("a1"))-9
If ActiveCell.Interior.ColorIndex = 3 Then
ActiveCell.Offset(5, monmois).Select
End If

Ceci admet que la cellule rouge soit toujours en colonne K et Janvier
toujours en colonne C
et les colonnes de mois successives.
sinon une possibilité serait de lire lemois par offset (0,5) de lac olonne
pour calculer
le décalage à opérer à la place de -9 dans l'exemple.

LeSteph

"Daniel Pelletier" a écrit dans le message de
news:
Salut LeSteph

Je croix qu'il faut remplacer ActiveCell.Offset(5, 0).Select
par ActiveCell.Offset(5, -9) pour être en avant le mois Jan
et exécuter ActiveCell.Offset(0, ?) le ? devrais être la valeur
en mois de la cellule a1 qui contien =Maintenant sous format "mm"

Comment remplacer le ? :-(

"LeSteph" a écrit dans le message de
news:40f45654$0$15324$
Bonsoir Daniel,
Si j'ai bien compris ajoute ceci au début:

If ActiveCell.Interior.ColorIndex = 3 Then
ActiveCell.Offset(5, 0).Select
End If

LeSteph
"Daniel Pelletier" a écrit dans le message de
news:
Bonjour a tous

Au début de cette macro je voudrais que SI mon curceur est sur la
cellule


en
rouge (police en rouge)
elle se déplace sur le bon mois(le mois actuel) pour continuer avec
les



même
condition.
Les mois de "Sept" est placer dessous la cellule en rouge(5 ligne en
bas).

cellule en rouge est en ligne K
"Jan" est 5 ligne plus bas en C
"Fév" est 5 ligne plus bas en D
ect....
SI la cellule active est sur un mois elle continue normalement.

Merci beaucoup

Sub COPIE_OK()
If ActiveSheet.Name <> "Aiguilles" Then Exit Sub
Dim Arr
Arr = Array("Jan", "Fév", "Mars", "Avril", "Mai", "Juin", _
"Juillet", "Août", "Sept", "Oct", "nov", "Déc")
If IsError(Application.Match(ActiveCell.Value, Arr, 0)) Or _
Not IsEmpty(ActiveCell(2)) Then
MsgBox "Changez de colonne"
Exit Sub
ElseIf ActiveCell.Value = "Déc" Then
ActiveCell(2, -10).Resize(15, 9).ClearContents
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
ActiveCell(-5, 1).Select
ElseIf ActiveCell.Value = "Mai" Then
ActiveCell(2, 6).Resize(15, 3).ClearContents
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
ElseIf ActiveCell.Value = "Jan" Then
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
12).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
Else
ActiveCell(2, 1).Resize(13).Value = ActiveCell(2,
0).Resize(13).Value

ActiveCell(15, 1).Value = ['Feuille_insp'!h2]
ActiveCell(16, 1).Value = ['Feuille_insp'!j3]
Selection.End(xlToRight).Select
ActiveCell(-5, 1).Select
End If
End Sub