vba

s.blancou

XLDnaute Nouveau
Salut les gens
Je bloque, aidez-moi!!

je cherche à intégrer une formule en vba:

ma formule:
=SI(ESTVIDE($B8);"";SI(OU(ET(RECHERCHEV($B8;bddetablissement;17;FAUX)="we et feries";OU(JOURSEM(Q$6)=1;JOURSEM(Q$6)=7)));"X";SI(OU(ET($N8>0;$N8<Q$6);(Q$6<$M8));"F";SI(RECHERCHEH(JOURSEM(Q$5;1);tpspartiel;(CELLULE("ligne";$B8)-5);FAUX)="X";"X";SI(OU(ET($O8>0;$O8<=Q$6);($O8="en attente"));"EA";"")))))

mon code:
Target.FormulaR1C1 = _ "=IF(ISBLANK(RC2),"""",IF(OR(AND(VLOOKUP(RC2,bddetablissement,17,FALSE)=""we et feries"",OR(WEEKDAY(R6C)=1,WEEKDAY(R6C)=7))),""X"",IF(OR(AND(RC14>0,RC14<R6C),(R6C<RC13)),""F"",IF(HLOOKUP(WEEKDAY(R5C,1),tpspartiel,(cell(""row"",RC2)-5),false)=""x"",""x"",IF(OR(AND(RC15>0,RC15<=R6C),(RC15=""en attente"")),""EA"","""")))))"

Ca ne marche pas :( est-ce que j'ai mal traduis le (cellule("ligne"...?
Merci pour vos réponses
 

s.blancou

XLDnaute Nouveau
Re : vba

Salut les amis!

Autre blocage en vba :

Lorsque je ferme mon fichier, j'aimerais que:
Si la cellule (de la feuille en cours) R3C = à la cellule R2C12 (de la feuille "2009")
Alors:
Copier la colonne de R3C / Coller spécial dans la colonne de R3C (dans la plage B4:DE170) pour remplacer les formules par des valeurs


J'en suis là:
Sub Document_Close
If Target.Column > 1 And Target.Column < 110 And Target.Row > 3 And Target.Row < 171 Then
If Target.Cells(3,).Value = Worksheet("2009").Cells(3, 3).Value Then
Workbook.Sheet("en attente").Column = Workbook.Sheet("en attente").Column.Value
End if
End if
End sub

Voilà, je débute et je confonds tout :-(
A vot' bon cœur, merci :)
 

JNP

XLDnaute Barbatruc
Re : vba

Re :),
L'événementielle à utiliser est
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
End Sub
dans ThisWorkBook. Mais elle ne renvoit pas de Target, juste la possibilité de modifier Cancel, ce qui laisse le classeur ouvert.
Maintenant, si tu veux comparer des valeurs, il faudrait les donner en dur (A1, CZ221, etc.).
Enfin, tu ne pourras pas transformer des cellules juste par une égalité. 2 solutions :
1) Copy puis PasteSpecial
2)
Code:
Dim Cellule As Range
For Each Cellule In Selection ' Remplacer Selection par le Range qui t'intéresse
Cellule = [Cellule]
Next
Bon courage :cool:
 

Discussions similaires

Réponses
3
Affichages
849

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal