Macro decallage cellule si
informatifien
Messages postés
781
Statut
Membre
-
informatifien Messages postés 781 Statut Membre -
informatifien Messages postés 781 Statut Membre -
Bonjour tout le monde,
bon me voilà avec une demande un peu tordu je vais donc tenter d’être le plus précis possible quand à ma demande et utiliser des exemples simples,j’ai en ligne 1 des dates qui se suivent, les week-end se mettent en couleur,en dessous j’ai 2 lignes identiques, qui s’importe depuis un autre onglet, que je vais appeler Prévisionnel (ligne 2) et Réel (ligne 3) ensuite j’ai un USF avec une ComboBox, un CommandButton et des OptionButton, donc je tape un numéro dans ma ComboBox, je coche une de mes OptionButton je clic sur mon CommandButton, là, ma macro cherche le numéro le trouve puis cherche la date du jour en ligne 1 et sélectionne la cellule de la ligne 3 (réel) dans la même colonne, puis selon l’OptionButton coché change le format de la cellule sélectionnée en vert ou rouge ou orange. Voilà le déroulement de ma macro actuelle, mais je voudrai que si par exemple je coche l’OptionButton qui formate rouge alors décaler toute la ligne d’une cellule, certes pour ça il suffirait d’insérer une cellule, mon problème c’est que je voudrai que quand en ligne 1 (date) il y ai un samedi que là, la ligne se décale de 2 et ce chaque fois qu’il y a un samedi j’espère que mon explication est compréhensible . . .si ce n’est pas le cas alors je ferai passer mon fichier.
Voici le code de USF :
Private Sub UserForm_Initialize()
datesaisie = Day(Now) & "/" & Month(Now) & "/" & Year(Now) ' j'inscris la date sans l'heure
NumofModif.SetFocus
End Sub
Sub modifier_Click()
Dim b As Long, a As Long, c As Variant
Dim d As Date
a = 1
b = NumofModif
c = 4
d = datesaisie
Do 'je cherche mon numero d'OF dans la colo A
a = a + 1
Loop Until Application.Cells(a, 1) = b
Do 'je cherche la date saisie (datesaisie) sur la ligne du N° d'OF trouvé
c = c + 1
Loop Until Application.Cells(a, c) = d
Application.Cells(a + 2, c).Select 'Je séléctionne la cell
If Recu = True Then
ActiveCell.Select
With Selection.Interior
.ColorIndex = 5
.Pattern = xlSolid
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders.LineStyle = xlContinuous
ElseIf NonReçu = True Then
ActiveCell.Select
With Selection.Interior
.ColorIndex = 45
.Pattern = xlSolid
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders.LineStyle = xlContinuous
ElseIf Retard = True Then
ActiveCell.Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders.LineStyle = xlContinuous
ElseIf Envoye = True Then
ActiveCell.Select
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
With Selection.Borders(xlDiagonalDown)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders.LineStyle = xlContinuous
End If
Unload Modification
End Sub
bon me voilà avec une demande un peu tordu je vais donc tenter d’être le plus précis possible quand à ma demande et utiliser des exemples simples,j’ai en ligne 1 des dates qui se suivent, les week-end se mettent en couleur,en dessous j’ai 2 lignes identiques, qui s’importe depuis un autre onglet, que je vais appeler Prévisionnel (ligne 2) et Réel (ligne 3) ensuite j’ai un USF avec une ComboBox, un CommandButton et des OptionButton, donc je tape un numéro dans ma ComboBox, je coche une de mes OptionButton je clic sur mon CommandButton, là, ma macro cherche le numéro le trouve puis cherche la date du jour en ligne 1 et sélectionne la cellule de la ligne 3 (réel) dans la même colonne, puis selon l’OptionButton coché change le format de la cellule sélectionnée en vert ou rouge ou orange. Voilà le déroulement de ma macro actuelle, mais je voudrai que si par exemple je coche l’OptionButton qui formate rouge alors décaler toute la ligne d’une cellule, certes pour ça il suffirait d’insérer une cellule, mon problème c’est que je voudrai que quand en ligne 1 (date) il y ai un samedi que là, la ligne se décale de 2 et ce chaque fois qu’il y a un samedi j’espère que mon explication est compréhensible . . .si ce n’est pas le cas alors je ferai passer mon fichier.
Voici le code de USF :
Private Sub UserForm_Initialize()
datesaisie = Day(Now) & "/" & Month(Now) & "/" & Year(Now) ' j'inscris la date sans l'heure
NumofModif.SetFocus
End Sub
Sub modifier_Click()
Dim b As Long, a As Long, c As Variant
Dim d As Date
a = 1
b = NumofModif
c = 4
d = datesaisie
Do 'je cherche mon numero d'OF dans la colo A
a = a + 1
Loop Until Application.Cells(a, 1) = b
Do 'je cherche la date saisie (datesaisie) sur la ligne du N° d'OF trouvé
c = c + 1
Loop Until Application.Cells(a, c) = d
Application.Cells(a + 2, c).Select 'Je séléctionne la cell
If Recu = True Then
ActiveCell.Select
With Selection.Interior
.ColorIndex = 5
.Pattern = xlSolid
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders.LineStyle = xlContinuous
ElseIf NonReçu = True Then
ActiveCell.Select
With Selection.Interior
.ColorIndex = 45
.Pattern = xlSolid
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders.LineStyle = xlContinuous
ElseIf Retard = True Then
ActiveCell.Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders.LineStyle = xlContinuous
ElseIf Envoye = True Then
ActiveCell.Select
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
With Selection.Borders(xlDiagonalDown)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders.LineStyle = xlContinuous
End If
Unload Modification
End Sub
A voir également:
- Macro decallage cellule si
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Excel cellule couleur si condition texte - Guide
- Proteger cellule excel - Guide
- Excel somme si couleur cellule - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
35 réponses
re voilà mon fichier se trouve là :
https://www.cjoint.com/?lwuOTKF4zM
pour des questions ne pas hésiter à me demander . . . .
https://www.cjoint.com/?lwuOTKF4zM
pour des questions ne pas hésiter à me demander . . . .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut oui c'est possible mais ce soir maintenant . . .là je suis de nouveau au boulot . . .zut flute ;)
et voilà au format zip :
https://www.cjoint.com/?lxrZRE7aGc
je ne serais pas là ce soir seulement demain merci d'avance
https://www.cjoint.com/?lxrZRE7aGc
je ne serais pas là ce soir seulement demain merci d'avance
Bonjour,
Ceci n’est pas clair :
Voilà le déroulement de ma macro actuelle, mais je voudrai que si par exemple je coche l’OptionButton qui formate rouge alors décaler toute la ligne d’une cellule, certes pour ça il suffirait d’insérer une cellule, mon problème c’est que je voudrai que quand en ligne 1 (date) il y ai un samedi que là, la ligne se décale de 2 et ce chaque fois qu’il y a un samedi j’espère que mon explication est compréhensible
Il faut décaler d’une ligne : c'est-à-dire par exemple la ligne 7 devient la 8 et la 7 est vide ?
Ceci n’est pas clair :
Voilà le déroulement de ma macro actuelle, mais je voudrai que si par exemple je coche l’OptionButton qui formate rouge alors décaler toute la ligne d’une cellule, certes pour ça il suffirait d’insérer une cellule, mon problème c’est que je voudrai que quand en ligne 1 (date) il y ai un samedi que là, la ligne se décale de 2 et ce chaque fois qu’il y a un samedi j’espère que mon explication est compréhensible
Il faut décaler d’une ligne : c'est-à-dire par exemple la ligne 7 devient la 8 et la 7 est vide ?
oui c'est pas facile à exprimer je tente de faire mieux maintenant que tu as le fichier:
donc pour m'expliquer je vais partir sur les lignes 30 et 31, admettons que nous sommes le Jeudi 5 j'ouvre mon menu (Ctrl+m) je clic sur modification journalière, si on ete bien le Jeudi 5 le DtPicker afficherai donc Jeudi 5, là mon affaire est en retard je clic donc sur l'OptionButton "En Retard" quand je valide il change donc le format de la cellule K31 soit celle sur la ligne Réel, la ligne prévisionnelle ne changeant jamais,si tu regarde bien à partir du mardi 10 (P31) on passe de LV à CF étant donné que je suis en retard CF ne commencera donc que le mercredi 11 (Q31) et donc je veux un visuel sur ce decallage et donc décaller toute la ligne (vers la droite) si je decalle simplement en inserant une cellule, la cellule LV du vendredi 6(L31) va se mettre dans la cellule du Samedi 7(M31) or je voudrais qu'elle aille en O31 . . . .
Euuuuh désolé si c'est un peu vaseux mais c'est pas facile facile donc je t'ai donné plein de détail mais qui donne du coup un ptit pavé lol
Merci
donc pour m'expliquer je vais partir sur les lignes 30 et 31, admettons que nous sommes le Jeudi 5 j'ouvre mon menu (Ctrl+m) je clic sur modification journalière, si on ete bien le Jeudi 5 le DtPicker afficherai donc Jeudi 5, là mon affaire est en retard je clic donc sur l'OptionButton "En Retard" quand je valide il change donc le format de la cellule K31 soit celle sur la ligne Réel, la ligne prévisionnelle ne changeant jamais,si tu regarde bien à partir du mardi 10 (P31) on passe de LV à CF étant donné que je suis en retard CF ne commencera donc que le mercredi 11 (Q31) et donc je veux un visuel sur ce decallage et donc décaller toute la ligne (vers la droite) si je decalle simplement en inserant une cellule, la cellule LV du vendredi 6(L31) va se mettre dans la cellule du Samedi 7(M31) or je voudrais qu'elle aille en O31 . . . .
Euuuuh désolé si c'est un peu vaseux mais c'est pas facile facile donc je t'ai donné plein de détail mais qui donne du coup un ptit pavé lol
Merci
Bonjour,
Merci pour le complément d’information que je vais regarder dans la journée.
Note : il est plus simple de représenter le résultat que l’on veut obtenir directement sur un extrait de la feuille elle-même.
Merci pour le complément d’information que je vais regarder dans la journée.
Note : il est plus simple de représenter le résultat que l’on veut obtenir directement sur un extrait de la feuille elle-même.
ah ok c'est noté je procéderai de la sorte la prochaine fois . . et merci à toi de prendre le temps d'y regarder
Bonjour,
Ma proposition selon se que j’ai compris : https://www.cjoint.com/?lyxsOW30Hu
Pour tester, j’écris la ligne à décaler sur la ligne 35 dans le but de pouvoir contrôler avec la ligne concernée. Il sera très simple de rétablir le bon ordre si la solution est conforme à vos désirs.
Ma proposition selon se que j’ai compris : https://www.cjoint.com/?lyxsOW30Hu
Pour tester, j’écris la ligne à décaler sur la ligne 35 dans le but de pouvoir contrôler avec la ligne concernée. Il sera très simple de rétablir le bon ordre si la solution est conforme à vos désirs.
Bonjour,
J’ai découvert une erreur avec le premier (lundi) et dernier (vendredi) jour de la semaine.
La procédure est corrigée et en plus elle prend en compte le format des cellules de la ligne.
Pour le test sur la ligne 35. : https://www.cjoint.com/?lzrYsYZRmz
J’ai découvert une erreur avec le premier (lundi) et dernier (vendredi) jour de la semaine.
La procédure est corrigée et en plus elle prend en compte le format des cellules de la ligne.
Pour le test sur la ligne 35. : https://www.cjoint.com/?lzrYsYZRmz
Bon je viens de tester, plusieurs soucis:
le controle que tu as ajouté il y été en faite il s'appel DtPicker, il affiche la date du jour et on a un menu déroulant pour choisir la date que l'on desire si besoin. . . .mais selon ta version d'excel il se peut que tu ne l'ai pas ce qui est dommage car il est plus maléable que celui que tu as mais ce n'est pas grave je pourrai remettre le mien après.
Autre problème venant surement de la version aussi quand je clic sur le bouton validé il me met une erreur objet de bibliothèque introuvable dans le Sub modifier_Click() au niveau de la ligne sd = 3 ' valeur du saut samedi / dimanche je ne vois pas pourquoi et pour etre honnete ta macro est complexe j'ai du mal à la comprendre (ce n'est point un reproche mais uen information sur mon niveau VBA) mais ça me fait un bon exercice. . .. mais pouah impressionnant, c'est pas demain que j'arriverai à coder des macro comme ça . . .
Merci
le controle que tu as ajouté il y été en faite il s'appel DtPicker, il affiche la date du jour et on a un menu déroulant pour choisir la date que l'on desire si besoin. . . .mais selon ta version d'excel il se peut que tu ne l'ai pas ce qui est dommage car il est plus maléable que celui que tu as mais ce n'est pas grave je pourrai remettre le mien après.
Autre problème venant surement de la version aussi quand je clic sur le bouton validé il me met une erreur objet de bibliothèque introuvable dans le Sub modifier_Click() au niveau de la ligne sd = 3 ' valeur du saut samedi / dimanche je ne vois pas pourquoi et pour etre honnete ta macro est complexe j'ai du mal à la comprendre (ce n'est point un reproche mais uen information sur mon niveau VBA) mais ça me fait un bon exercice. . .. mais pouah impressionnant, c'est pas demain que j'arriverai à coder des macro comme ça . . .
Merci
Bonjour,
Avant de continuer la lecture de votre courriel, je vous informe que le fichier en RAR (xls =2452ko) n’est pas identique à celui en ZIP (xls=2431ko).
Et que celui en ZIP produit une erreur de compilation à l’ouverture de [Modification journalière] . Et en plus sur la [UserForm] modification de l’état il manque Le contrôle de [datesaisie], c’est la raison de mon ajout.
Je vais transférer le tout sur la version RAR pour voir s’il y a un problème.
Note: il serait bien de mentionner la version quui correspond aux remarques ... !
Avant de continuer la lecture de votre courriel, je vous informe que le fichier en RAR (xls =2452ko) n’est pas identique à celui en ZIP (xls=2431ko).
Et que celui en ZIP produit une erreur de compilation à l’ouverture de [Modification journalière] . Et en plus sur la [UserForm] modification de l’état il manque Le contrôle de [datesaisie], c’est la raison de mon ajout.
Je vais transférer le tout sur la version RAR pour voir s’il y a un problème.
Note: il serait bien de mentionner la version quui correspond aux remarques ... !
Bonjour,
Eh bien, j’ai tout tranféré et le contrôle [Calendrier] de la référence [Microsoft Calendar Control 2007] est présent.
Tout fonctionne correctement selon ma procédure.
Je vais de se pas voir votre courriel.
Eh bien, j’ai tout tranféré et le contrôle [Calendrier] de la référence [Microsoft Calendar Control 2007] est présent.
Tout fonctionne correctement selon ma procédure.
Je vais de se pas voir votre courriel.
Bonjour,
Suite.
Il y a un problème avec les références de l’éditeur VBA. Faite Alt+F11 et dans la barre des menus, sur Outils et clic Références … Contrôler si toutes les références cochées sont présentes … Si le mot [Manquant] se trouve devant le nom (probablement [Microsoft Office XP Web Components], décoché la case.
Fermer et enregistrer le fichier.
J’attends vos nouvelles
Suite.
Il y a un problème avec les références de l’éditeur VBA. Faite Alt+F11 et dans la barre des menus, sur Outils et clic Références … Contrôler si toutes les références cochées sont présentes … Si le mot [Manquant] se trouve devant le nom (probablement [Microsoft Office XP Web Components], décoché la case.
Fermer et enregistrer le fichier.
J’attends vos nouvelles
Bonsoir,
J’ai oublié, la version qui correspond à l’envoie (RAR) : https://www.cjoint.com/?lzwzT07DVz
J’ai oublié, la version qui correspond à l’envoie (RAR) : https://www.cjoint.com/?lzwzT07DVz
Bonjour,
merci encore pour votre patience, car pas facile de suivre un problème ne pouvant evoluer que le soir,j'ai travailler ma macro sur excel 2002 voilà pour l'info de ma version, et le soir je suis sur 2003 j'ai donc aussi des problèmes de controle quand je telecharge le fichiers de chez moi décidement tou ça complique beaucoup . . .donc je regarderai votre dernière version du fichier ce soir et vous tiens au courant . . .ce qui me semble bizarre c'est que j'ai crée le fichier rar et le zip à partir du meme fichier xls . . . .etrange. . .
merci encore pour votre patience, car pas facile de suivre un problème ne pouvant evoluer que le soir,j'ai travailler ma macro sur excel 2002 voilà pour l'info de ma version, et le soir je suis sur 2003 j'ai donc aussi des problèmes de controle quand je telecharge le fichiers de chez moi décidement tou ça complique beaucoup . . .donc je regarderai votre dernière version du fichier ce soir et vous tiens au courant . . .ce qui me semble bizarre c'est que j'ai crée le fichier rar et le zip à partir du meme fichier xls . . . .etrange. . .