Rechercher : dans
Par :

Macro decallage cellule si

Dernière réponse le 26 nov 2009 à 08:50:58 informatifien, le 17 nov 2009 à 09:19:47 
 Signaler ce message aux modérateurs

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



MERCI A CCM à déclarer source d'intéret public . .. .. pensez à marquer vos topic résolus quand c'est le cas .. . . .

Configuration: asus P5V800 / P4 2,8 Ghz / 1,5 Go Windows XP FireFox / IE 7

Meilleures réponses pour « Macro decallage cellule si » dans :
[Excel] Colorer des cellules sur conditions VoirIl existe dans Excel des fonctions très pratiques mais peu connues et peu utilisées. Exemple : vous souhaitez qu'une cellule se colore automatiquement en rouge (ou autre mise en forme de police, de bordure, de trame) selon une condition : un...

1

ponpon, le 17 nov 2009 à 22:30:50

Bonjour,
Mettre votre fichier sur http://cjoint.com/ et poster le lien.

Répondre à ponpon

2

informatifien, le 18 nov 2009 à 08:56:45

Ok je ferai ça ce soir car cjoint est bloqué sur mon poste . . . . MERCI A CCM à déclarer source d'intéret public . .. .. pense­z à marquer vos topic résolus quand c'est le cas .. . . .

Répondre à informatifien

3

informatifien, le 22 nov 2009 à 20:41:26

Re voilà mon fichier se trouve là :

http://cjoint.com/?lwuOTKF4zM

pour des questions ne pas hésiter à me demander . . . . MERCI A CCM à déclarer source d'intéret public . .. .. pense­z à marquer vos topic résolus quand c'est le cas .. . . .

Répondre à informatifien

4

ponpon, le 22 nov 2009 à 21:40:22

Bonjour,
Désolé je ne peux pas ouvrir les fichiers compressés en RAR.
Les ZIP s’est possible.

Répondre à ponpon

5

informatifien, le 23 nov 2009 à 08:26:24

Salut oui c'est possible mais ce soir maintenant . . .là je suis de nouveau au boulot . . .zut flute ;) MERCI A CCM à déclarer source d'intéret public . .. .. pense­z à marquer vos topic résolus quand c'est le cas .. . . .

Répondre à informatifien

6

informatifien, le 23 nov 2009 à 17:53:32

Et voilà au format zip :

http://cjoint.com/?lxrZRE7aGc

je ne serais pas là ce soir seulement demain merci d'avance MERCI A CCM à déclarer source d'intéret public . .. .. pense­z à marquer vos topic résolus quand c'est le cas .. . . .

Répondre à informatifien

7

ponpon, le 23 nov 2009 à 22:58:39

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 ?

Répondre à ponpon

8

informatifien, le 24 nov 2009 à 08:47:50

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 MERCI A CCM à déclarer source d'intéret public . .. .. pensez à marquer vos topic résolus quand c'est le cas .. . . .

Répondre à informatifien

9

ponpon, le 24 nov 2009 à 09:46:12

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.

Répondre à ponpon

10

informatifien, le 24 nov 2009 à 10:04:56

Ah ok c'est noté je procéderai de la sorte la prochaine fois . . et merci à toi de prendre le temps d'y regarder MERCI A CCM à déclarer source d'intéret public . .. .. pense­z à marquer vos topic résolus quand c'est le cas .. . . .

Répondre à informatifien

11

ponpon, le 24 nov 2009 à 23:20:46

Bonjour,
Ma proposition selon se que j’ai compris : http://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.

Répondre à ponpon

12

informatifien, le 25 nov 2009 à 08:37:28

Merci je jeterai un oeil ce soir chez moi et repost pour dire si ça va MERCI A CCM à déclarer source d'intéret public . .. .. pense­z à marquer vos topic résolus quand c'est le cas .. . . .

Répondre à informatifien

13

ponpon, le 25 nov 2009 à 17:51:44

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. : http://cjoint.com/?lzrYsYZRmz

Répondre à ponpon

14

informatifien, le 25 nov 2009 à 19:44:48

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


MERCI A CCM à déclarer source d'intéret public . .. .. pense­z à marquer vos topic résolus quand c'est le cas .. . . .

Répondre à informatifien

15

ponpon, le 25 nov 2009 à 21:09:39

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 ... !

Répondre à ponpon

16

ponpon, le 25 nov 2009 à 22:07:48

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.

Répondre à ponpon

17

ponpon, le 25 nov 2009 à 22:21:08

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

Répondre à ponpon

18

ponpon, le 25 nov 2009 à 22:26:32

Bonsoir,
J’ai oublié, la version qui correspond à l’envoie (RAR) : http://cjoint.com/?lzwzT07DVz

Répondre à ponpon

19

 informatifien, le 26 nov 2009 à 08:50:58

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 A CCM à déclarer source d'intéret public . .. .. pense­z à marquer vos topic résolus quand c'est le cas .. . . .

Répondre à informatifien