Macro decallage cellule si

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


35 réponses

ponpon
 
Bonjour,
Mettre votre fichier sur https://www.cjoint.com/ et poster le lien.
0
informatifien Messages postés 781 Statut Membre 92
 
ok je ferai ça ce soir car cjoint est bloqué sur mon poste . . . .
0
informatifien Messages postés 781 Statut Membre 92
 
re voilà mon fichier se trouve là :

https://www.cjoint.com/?lwuOTKF4zM

pour des questions ne pas hésiter à me demander . . . .
0
ponpon
 
Bonjour,
Désolé je ne peux pas ouvrir les fichiers compressés en RAR.
Les ZIP s’est possible.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
informatifien Messages postés 781 Statut Membre 92
 
Salut oui c'est possible mais ce soir maintenant . . .là je suis de nouveau au boulot . . .zut flute ;)
0
informatifien Messages postés 781 Statut Membre 92
 
et voilà au format zip :

https://www.cjoint.com/?lxrZRE7aGc

je ne serais pas là ce soir seulement demain merci d'avance
0
ponpon
 
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 ?
0
informatifien Messages postés 781 Statut Membre 92
 
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
0
ponpon
 
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.
0
informatifien Messages postés 781 Statut Membre 92
 
ah ok c'est noté je procéderai de la sorte la prochaine fois . . et merci à toi de prendre le temps d'y regarder
0
ponpon
 
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.
0
informatifien Messages postés 781 Statut Membre 92
 
Merci je jeterai un oeil ce soir chez moi et repost pour dire si ça va
0
ponpon
 
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
0
informatifien Messages postés 781 Statut Membre 92
 
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

0
ponpon
 
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 ... !
0
ponpon
 
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.
0
ponpon
 
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
0
ponpon
 
Bonsoir,
J’ai oublié, la version qui correspond à l’envoie (RAR) : https://www.cjoint.com/?lzwzT07DVz
0
informatifien Messages postés 781 Statut Membre 92
 
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. . .
0
ponpon
 
Bonjour,
En marge, concernant : erreur objet de bibliothèque introuvable , se n’est pas une erreur imputable à la version Excel mais certainement un problème de références VBA.Bonne journée.
0