Sauter une ou plusieurs lignes si elles sont colorées

degap05

XLDnaute Impliqué
Bonjour,

Pourriez-vous m'indiquer un code pour sauter ou ignorer une ou plusieurs lignes dont les cellules sont colorées (quelque soit la couleur).

Cela s'appliquerait à la saisie de données par un userform (déjà en place), qui renseigne les cellules des colonnes C,D,E,F et H, ligne par ligne. Chaque ligne correspond à un jour de la semaine. Les lignes des samedi et dimanche sont colorées au préalable. Lorsque les données du vendredi sont saisies, il faudrait sauter le samedi et le dimanche et passer à la ligne du lundi. Cela s'appliquerait à d'autres cas, jours fériés, congés, RTT, etc.... tous ces jours ont une couleur de ligne différente. Est-ce qu'il y aurait moyen d'adapter ce code ?:

Private Sub Worksheet_Change(ByVal Target As Range)

With Cells("A:A")
If .Interior.Color
. ' sauter la ou les cellules colorées.
End If
End With

End Sub

Merci pour votre aide.
 

skoobi

XLDnaute Barbatruc
Re : Sauter une ou plusieurs lignes si elles sont colorées

Et ceci?

For Each cellule In Range ([C1], [C65536].End(xlUp))
Select Case cellule.Interior.ColorIndex
Case 3, 4, 5, 6, 7 'à adapter
cellule.Offset(1, 0).Value = TextBox1.Text
cellule.Offset(1, 1).Value = TextBox2.Text
cellule.Offset(1, 2).Value = TextBox3.Text
cellule.Offset(1, 3).Value = TextBox4.Text
cellule.Offset(1, 5).Value = TextBox5.Text
End Select
Next
..........
...........
................
 

degap05

XLDnaute Impliqué
Re : Sauter une ou plusieurs lignes si elles sont colorées

Bonjour, Skoobi,

Je joins un fichier, sur lequel j'ai mis les explications.

Ne te prends pas la tête avec:(

Si la solution est trop compliquée à mettre en place ou demande à remanier la feuille, laisse tomber:)

Merci beaucoup.
 

Pièces jointes

  • Horaires.zip
    46.5 KB · Affichages: 18
  • Horaires.zip
    46.5 KB · Affichages: 17
  • Horaires.zip
    46.5 KB · Affichages: 20

skoobi

XLDnaute Barbatruc
Re : Sauter une ou plusieurs lignes si elles sont colorées

Re,

voici le code du bouton "valider" modifié:

Code:
 Private Sub CommandButton1_Click()
          Dim LastRow As [B][COLOR=Blue]Range[/COLOR][/B]
[COLOR=Blue][B] For Each cellule In Range([C6], [C65536].End(xlUp))
Select Case cellule.Interior.ColorIndex
Case -4142  'pas de couleur
cellule.Offset(0, 0).Value = TextBox1.Text
cellule.Offset(0, 1).Value = TextBox2.Text
cellule.Offset(0, 2).Value = TextBox3.Text
cellule.Offset(0, 3).Value = TextBox4.Text
cellule.Offset(0, 5).Value = TextBox5.Text
End Select
Next[/B][/COLOR]
MsgBox "L'horaire est bien enregistré"
          response = MsgBox("Un autre jour à renseigner?", _
              vbYesNo)
          If response = vbYes Then
              TextBox1.Text = TextBox1.Text
              TextBox2.Text = TextBox2.Text
              TextBox3.Text = TextBox3.Text
              TextBox4.Text = TextBox4.Text
              TextBox5.Text = TextBox5.Text
              TextBox1.SetFocus
          Else
          Hide
          End If
      End Sub
 

degap05

XLDnaute Impliqué
Re : Sauter une ou plusieurs lignes si elles sont colorées

Bonsoir,

Étonnant, installé sur ma feuille, rien ne se passe.

Installé sur une feuille vierge, la validation renseigne les 6 premières lignes d'un coup. En revalidant une nouvelle entrée....plus rien.

Si je colorie les 3 premières lignes, la validation enverra les données identiques en-dessous, soit en ligne 4,5,6. Donc la prise en compte de la commande "sans couleur" est prise en compte. Mais ensuite pas de nouvelle entrée possible.
Ce petit classeur d'essai joint.

J'ai l'impression que tu n'es pas loin de la solution:)
 

Pièces jointes

  • Classeur1.zip
    14.5 KB · Affichages: 22
  • Classeur1.zip
    14.5 KB · Affichages: 12
  • Classeur1.zip
    14.5 KB · Affichages: 16

skoobi

XLDnaute Barbatruc
Re : Sauter une ou plusieurs lignes si elles sont colorées

Re,

je pense que l'analyse ne ce faisait pas dans la bonne colonne.
modifie comme suit:

........
For Each cellule In Range([A6], [A65536].End(xlUp))
..........
...........

 

degap05

XLDnaute Impliqué
Re : Sauter une ou plusieurs lignes si elles sont colorées

Bonsoir, le résultat est surprenant !!!

Effectivement les lignes colorées ne sont pas renseignées, mais, l'heure du matin se trouve à la place des jours de la semaine,l'heure de sortie du matin est à la place de l'entrée, l'entrée de l'aprés-midi est vide, etc... et toute la feuille est remplie d'un coup jusqu'en fin d'année.
 

skoobi

XLDnaute Barbatruc
Re : Sauter une ou plusieurs lignes si elles sont colorées

mais, l'heure du matin se trouve à la place des jours de la semaine,l'heure de sortie du matin est à la place de l'entrée, l'entrée de l'aprés-midi est vide, etc.
oui logique, il faut décaler d'autant comme ceci:

cellule.Offset(0, 2).Value = TextBox1.Text
cellule.Offset(0, 3).Value = TextBox2.Text
cellule.Offset(0, 4).Value = TextBox3.Text
cellule.Offset(0, 5).Value = TextBox4.Text
cellule.Offset(0, 7).Value = TextBox5.Text

je pense que tu aurais trouvé tout seul.
 

degap05

XLDnaute Impliqué
Re : Sauter une ou plusieurs lignes si elles sont colorées

Alors là, c'est presque bon!!

J'aurais peut-être trouvé qu'il fallait décaler :eek:, mais là non, je ne trouverai pas:

-la feuille se remplit, correctement, mais entièrement jusqu'au dernier jour de l'année d'un seul coup:confused::confused:

En tous les cas bravo, il ne reste plus que cette anomalie.
 

degap05

XLDnaute Impliqué
Re : Sauter une ou plusieurs lignes si elles sont colorées

Dans la méthode rudimentaire que j'avais mis en place:(, en remplissant ligne à ligne au jour le jour, la ligne se plaçait en dessous. C'est pour cela qu'avec le petit message "voulez-vous renseigner un autre jour", cela permettait rapidement de renseigner plusieurs jours avec le même horaire en cas d'oubli, l'userform restait apparent.

Je pense que cette solution reste la meilleure. Inutile de compliquer en indiquant une période. Si plusieurs jours sont à renseigner, il suffit de valider autant de fois que de jours.

Qu'en penses-tu ?
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 920
Membres
101 840
dernier inscrit
SamynoT