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

informatifien Messages postés 781 Statut Membre 92
 
Bonjour ponpon,

je m'excuse pour le retard pris pour te répondre . . . .mais j'ai changé de place à mon boulot donc nouveau PC, nouvelle installation etc . .. désolé :(

je n'avais donc pas eu le temps de vérifier ta macro, je n'arrive pas à la faire marcher car partant de mon USF il ne trouve pas la ligne qui fonctionne pour ton test, mais à voir le décallage qu'il y a , c'est exactement ce qu'il me fallai, par contre comment dois je faire pour adapter ton code pour que celà fonctionne avec les bonnes lignes?
0
ponpon
 
Bonjour,
L’information est dans la procédure [Sub modifier_Click()] de la feuille [Modification] , note explicative [' [li=35] écrire sur la ligne 35 pour test] sur la ligne concernée.
Chercher cette ligne (presque en fin de procédure):
ActiveSheet.Paste Destination:=Cells(35, co + s + sd) ' [li=35] écrire sur la ligne 35 pour test
Il vous suffit de remplacer la valeur [35] par la variable [li] :
ActiveSheet.Paste Destination:=Cells(li, co + s + sd) ' [li=35] écrire sur la ligne 35 pour test
0
informatifien Messages postés 781 Statut Membre 92
 
Salut, bon j'ai un problème j'ai toujours la même version d'ecxel sur mon nouveau poste mais quand j'ai voulu ouvrir le fichier, j'ai la dll de refedit manquante, mais seulement sur ce fichier. . . un collègue a eu le meme problème la semaine dernière ça viens apparement de variable dans le code qui poseraient problème. .. .donc il faut que je retélécharge le fichier depuis chez moi pffff c'est pénible , je suis désolé ponpon . . . .:( de pas pouvoir être plu réactif mais celà dis vu le résultat que tu as laissé pour test c'est bien ce que je cherché. . . .
0
ponpon
 
Bonjour,
Etrange se problème car les procédures sont compatibles pour les versions 1997 et plus.
Est-il possible de connaitre le nom de la [DLL] manquante ?
0

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

Posez votre question
informatifien Messages postés 781 Statut Membre 92
 
Salut,

comme je l'ai dis un collègue a eu exactement le meme problème j'avai à l'epoque posté le problème ici:

https://forums.commentcamarche.net/forum/affich-15318660-excel-refedit-dll-manquant

j'avai eu une réponse mais qui ne me convenait pas vraiment. . . . et pour cause un peu trop radicale à mon gout.
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Le problème sur le contrôle RefEdit avec un objet UserForm a des explications d'origine :

https://support.microsoft.com/fr-fr/help/213776 (traduction automatique)

Si tu as cette erreur avec la DLL "REFEDIT.DLL" présente dans ..\Microsoft Office\OFFICE..\, selon ta version, c'est sans doute un souci dans le registre que tu peux corriger (avec les précautions d'usage !!!) avec :

menu démarrer , exécuter :

regsvr32 "C:\Program Files\Microsoft Office\OFFICE11\REFEDIT.DLL"

en mettant bien sûr la bonne version de ton poste.

Lorsque l'on touche au registre, c'est l'utilisateur qui prend le risque et l'assume.

On peut aussi éviter d'utiliser ce contrôle avec un inputbox type 8 : chacun choisit...
0
ponpon
 
Bonjour gbinforme,
Merci de votre réponse dont je vais en profité.
Bonne journée.
0
informatifien Messages postés 781 Statut Membre 92
 
Salut, gbinforme merci pour l'info, ton inputbox remplace quel controle? les combobox ? ou textebox?

pour ta ligne de commande je l'ais tester comme ecrit dans le post dont j'ai mi le lien message 25 mais sans résultat . . .
0
informatifien Messages postés 781 Statut Membre 92
 
par contre j'ai du nouveau j'ai le fichier en zip donc j'ai supprimé l'autre, je dézzipe de nouveau j'arrive à lancer la macro mais j'ai une erreur : "erreur de compilation projet ou bibliothèque introuvable" et ce, à la ligne :

sd = 3 ' valeur du saut samedi / dimanche
pensant que c'est un problème de variable non déclarée je la déclare . . . sd as long

je remet la macro en lecture et re le meme message mais cette fois sur: CutCopyMode = False enfin seulement sur cutcopymode. . . .

Je ferme mon fichier et là quand je le réouvre c'est à ce moment là qu'il bug avec la DLL, je viens de faire deux fois la manipulation en supprimant le fichier et en le redezzipant. . .le problème est seulement sur ce fichier . . . .:s etrange n'est ce pas :((

0
ponpon
 
Bonjour,
La version que j’ai mise à disposition au poste 18 le 25 novembre fonctionne correctement.
Je constate qu’il n’y a aucun bouton de commande dans le fichier.
Comment déclenchez-vous les procédures ?
Juste pour voir, essayer cette version pour voir si l’erreur se reproduit : http://www.cijoint.fr/cjlink.php?file=cj200912/cijd8Jyv63.xls .
0
informatifien Messages postés 781 Statut Membre 92
 
Ctrl + m pour lancer le menu, ok j'essayerai ça ce soir vu que toujours pas cijoint au boulot :s
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

.le problème est seulement sur ce fichier . . . .:s etrange n'est ce pas

L'étrange relève d'un autre domaine que l'informatique car ce qui serait considéré comme étrange en informatique c'est surtout l'erreur humaine qui le provoque et probablement que ton classeur n'est pas tout net et comporte des données, des formules et/ou du code qui ne sont pas corrects.
0
informatifien Messages postés 781 Statut Membre 92
 
certe gbinforme je suis complétement d'accord j'ai surement un problème dans le code mais lequel ? ? ? . . . ? ? ? :)
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour informatifien,
Avez-vous essayé le fichier que ponpon (bonjour) vous a proposé au poste 30 ?
0
informatifien Messages postés 781 Statut Membre 92
 
Bonjour, oui j'ai essayé les 2 derniers qu'il a posté les 2 pose le meme problème . . .je pense que c'est le code qui pose problème sur ma version d'ecxel (2002) ou je fais une erreur en modifiant le code quand la macro s'arrete sur certaines variables du code de ponpon . . .
0
ponpon
 
Bonjour,
C’est parfait (bonjour Le Pingou et merci), comme j’ai neutralisé mon code dans la version du poste 30, cela veut dire que le problème ne vient pas de mon code.
0
informatifien Messages postés 781 Statut Membre 92
 
une question que voulez-vous dire par "neutraliser le code" ? verouillé par mot de passe?

ah et euuuh oups pardon j'ai commi une erreur je n'ai pas testé ce dernier fichier du post 30 mille excuses . . .j'ai eu une petite confusion, je teste ç a ce soir et vous tiens au courant excusez moi (ponpon et le pingou)

et je n'ai pas voulu dire que le code lui meme pose problème mais les modif que j'y fais . . . mais bon là j'ai fais une erreur donc il faut que je teste le fichier du post 30 pour savoir ce qu'il en est.

Encore merci pour tous vos efforts messieurs.

0