Changer format de cellules adjacentes
Résolu/Fermé
A voir également:
- Changer format de cellules adjacentes
- Changer dns - Guide
- Format epub - Guide
- Telecharger format factory - Télécharger - Conversion & Codecs
- Formule excel pour additionner plusieurs cellules - Guide
- Format apfs - Guide
6 réponses
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
26 janv. 2014 à 11:38
26 janv. 2014 à 11:38
Re,
devrait aller:
devrait aller:
Private Sub Workbook_Open()
Dim MyWeekDay
With Worksheets("feuil1")
For Each Cellule In .Range("D6:DQ37")
Target = Cellule.Value
If IsDate(Target) Then
If Target < Range("F2") Then
Cellule.Interior.Color = vbWhite
With Cellule.Font
.Color = RGB(64, 96, 255)
.Italic = True
End With
Else
Cellule.Interior.Color = vbWhite
With Cellule.Font
.Color = vbBlack
.Italic = False
End With
End If
MyWeekDay = Weekday(Target)
'Jour semaine Samedi et Dimanche
If MyWeekDay = 1 Or MyWeekDay = 7 Then
'lettre en nombre
NumCol = Range(Cellule.Address).Column
'cherche le nom (la lettre) de la colonne+5
ColFin = Split(Cells(8, NumCol + 5).Address, "$")(1)
'changement couleur de fond
.Range(Cellule.Address & ":" & ColFin & Cellule.Row).Interior.Color = vbBlack
Else
Cellule.Interior.Color = vbWhite
End If
End If
Next Cellule
End With
End Sub
l'objectif après sera d'étendre la fonction sur une plage de donnée entière
cela donnerait quelque chose du genre :
If MyWeekDay = [1] Or MyWeekDay = [7] Then
Range(Target, Target(0, 5)).Interior.Color = vbBlack
target serait A1 par exemple et le reste dans le but d'étendre la sélection de 5 cases vers la droite..
mais évidemment, cela ne fonctionne pas :(
cela donnerait quelque chose du genre :
If MyWeekDay = [1] Or MyWeekDay = [7] Then
Range(Target, Target(0, 5)).Interior.Color = vbBlack
target serait A1 par exemple et le reste dans le but d'étendre la sélection de 5 cases vers la droite..
mais évidemment, cela ne fonctionne pas :(
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
26 janv. 2014 à 10:25
26 janv. 2014 à 10:25
Bonjour,
Avec quoi voulez vous obtenir ces formats cellules ?????
Avec quoi voulez vous obtenir ces formats cellules ?????
Je ne comprends pas la question, Avec quoi?
en fait j'ai une plage assez grande de cellule dans laquelle j'aimerais affecter plusieurs conditions. J'essaye donc d'en faire une et les autres suivront facilement je crois.
Donc dans l'exemple ici, j'aimerais dire que lorsque ma cellule A1 (target pour la plage) est un samedi, alors les cellules A1 à A5 se mettent en noir par exemple
autrement dit, ma sélection target (=une seule cellule) se transforme en une petite plage (=5 cellules) et c'est sur cette plage que j'essaye de faire changer le format
en fait j'ai une plage assez grande de cellule dans laquelle j'aimerais affecter plusieurs conditions. J'essaye donc d'en faire une et les autres suivront facilement je crois.
Donc dans l'exemple ici, j'aimerais dire que lorsque ma cellule A1 (target pour la plage) est un samedi, alors les cellules A1 à A5 se mettent en noir par exemple
autrement dit, ma sélection target (=une seule cellule) se transforme en une petite plage (=5 cellules) et c'est sur cette plage que j'essaye de faire changer le format
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
26 janv. 2014 à 10:52
26 janv. 2014 à 10:52
Re,
votre deuxième message est apparu apres que j'ai valide le mien.
Avec l'événement Private Sub Worksheet_SelectionChange(ByVal Target As Range), ça devrait aller. Je regarde la chose
A+
votre deuxième message est apparu apres que j'ai valide le mien.
Avec l'événement Private Sub Worksheet_SelectionChange(ByVal Target As Range), ça devrait aller. Je regarde la chose
A+
en fait, seule la ligne ici en gras ne fonctionne pas..
Private Sub Workbook_Open()
For Each Cellule In Range("D6:DQ37")
Target = Cellule.Value
If IsDate(Target) Then
If Target < Range("F2") Then
Cellule.Interior.Color = vbWhite
With Cellule.Font
.Color = RGB(64, 96, 255)
.Italic = True
End With
Else
Cellule.Interior.Color = vbWhite
With Cellule.Font
.Color = vbBlack
.Italic = False
End With
End If
Dim MyDate, MyWeekDay
MyDate = Target
MyWeekDay = weekday(MyDate)
If MyWeekDay = [1] Or MyWeekDay = [7] Then
Range(Target, Target(0, 5)).Interior.Color = vbBlack
Else
Cellule.Interior.Color = vbWhite
End If
End If
Next
End Sub
Private Sub Workbook_Open()
For Each Cellule In Range("D6:DQ37")
Target = Cellule.Value
If IsDate(Target) Then
If Target < Range("F2") Then
Cellule.Interior.Color = vbWhite
With Cellule.Font
.Color = RGB(64, 96, 255)
.Italic = True
End With
Else
Cellule.Interior.Color = vbWhite
With Cellule.Font
.Color = vbBlack
.Italic = False
End With
End If
Dim MyDate, MyWeekDay
MyDate = Target
MyWeekDay = weekday(MyDate)
If MyWeekDay = [1] Or MyWeekDay = [7] Then
Range(Target, Target(0, 5)).Interior.Color = vbBlack
Else
Cellule.Interior.Color = vbWhite
End If
End If
Next
End Sub
je pense que cela fonctionne ! :D
merci beaucoup, je vais maintenant essayer de comprendre un peu le code pour pouvoir l'adapter si nécessaire
ColFin = Split(Cells(8, NumCol + 5).Address, "$")(1)
Pourriez-vous juste me dire d'où viennent le (1) et le 8 dans ce code ?
Un grand merci
merci beaucoup, je vais maintenant essayer de comprendre un peu le code pour pouvoir l'adapter si nécessaire
ColFin = Split(Cells(8, NumCol + 5).Address, "$")(1)
Pourriez-vous juste me dire d'où viennent le (1) et le 8 dans ce code ?
Un grand merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
26 janv. 2014 à 12:06
26 janv. 2014 à 12:06
Re
ColFin = Split(Cells(8, NumCol + 5).Address, "$")(1)
8--> un numero ligne, parce qu'il en faut un
"$")(1) ----> fait parti de l'instruction split pour la lettre colonne
la reference n'a pas d'importance, l'objectif est d'avoir la lettre de la colonne qui nous interesse
autre utilisation
'recuperation de la ligne
lig = Split(Range(cellule.Address).Address, "$")(2)
ColFin = Split(Cells(8, NumCol + 5).Address, "$")(1)
8--> un numero ligne, parce qu'il en faut un
"$")(1) ----> fait parti de l'instruction split pour la lettre colonne
la reference n'a pas d'importance, l'objectif est d'avoir la lettre de la colonne qui nous interesse
autre utilisation
'recuperation de la ligne
lig = Split(Range(cellule.Address).Address, "$")(2)