OVH Cloud OVH Cloud

Pb de formule

7 réponses
Avatar
Albert
Bonsoir à tous,

Voici mon problème:

J'ai une feuille de calcul avec 31 colones dont 4 avec des formules.
J'ai un UserForm avec 17 TextBox qui me sert à ajouter une nouvelle donnée.
Il fait son travail correctement . Le problème c'est que lorsqu'il place la
nouvelle donnée, à l'endroit voulu, les 4 colonnes devant contenir les
formules et bien ne les contiennent pas.
Est-il possible de les mettre d'office avec un module qui les placeraient
après l'encodage de la nouvelle donnée ?
Genre de formule:
1) Si(c2="T";"actuellement à Liège";si(c2="P";"actuellement à
Paris";si(c2="N";"actuellement à Namur;"")))
2) Si(d2="";"";si(N2=1;d2+1825;d2+1095))
3) Si((aujourdhui()-h2)>180;"rap à réclamer";"Non))
4) Si(ou(j2="";k2="r";"A faire";si((aujourdhui()-j2)>170;"A FAIRE";"PAS 6
MOIS"))

Merci de m'aider.
Merci d'avance

7 réponses

Avatar
isabelle
bonjoue Albert,

si ces formules sont présente sur la ligne précédente tu pourrais faire
un recopier vers le bas.

exemple avec les données des textbox mit sur la ligne 6, les formule en
colonne C à F
ligne = 6
Range("C" & ligne - 1 & ":F" & ligne).FillDown

isabelle


Bonsoir à tous,

Voici mon problème:

J'ai une feuille de calcul avec 31 colones dont 4 avec des formules.
J'ai un UserForm avec 17 TextBox qui me sert à ajouter une nouvelle donnée.
Il fait son travail correctement . Le problème c'est que lorsqu'il place la
nouvelle donnée, à l'endroit voulu, les 4 colonnes devant contenir les
formules et bien ne les contiennent pas.
Est-il possible de les mettre d'office avec un module qui les placeraient
après l'encodage de la nouvelle donnée ?
Genre de formule:
1) Si(c2="T";"actuellement à Liège";si(c2="P";"actuellement à
Paris";si(c2="N";"actuellement à Namur;"")))
2) Si(d2="";"";si(N2=1;d2+1825;d2+1095))
3) Si((aujourdhui()-h2)>180;"rap à réclamer";"Non))
4) Si(ou(j2="";k2="r";"A faire";si((aujourdhui()-j2)>170;"A FAIRE";"PAS 6
MOIS"))

Merci de m'aider.
Merci d'avance


Avatar
Albert
Merci Isabelle,
Ca devrait marcher si les colonnes sont adjacentes mais ce n'est pas mon
cas.

Voici une partie du code:
TextBox:
private Sub Ville_change()
Dim text as String
Text=Ville
End Sub
---------------------------
et il y en a encore 16
ensuite j'ai le bouton

Private Sub Valider_Click()
Dim Li As Long
Dim shDB As Worksheet
Set shDB=ThisWorkbook.Sheets("CDS")
Li=shDB.Range("a1").CurrentRegion.Rows.Count +1
shDB.Cells(Li,1).Value=Me.Ville.Text
puis Cells(Li,2), (Li,3),(Li,5),(Li,6),(Li,8),(Li,9),(Li,11),(Li,15) etc...
puis
shDB.Rows("1:"&Li).Sort key1:=shDB.Range("a1"),order1:=xlAscending,
_header:=xlYes
Set shDB=Nothing
End Sub
---------------------------
et dans ce code il n'est nullement question d'encoder dans les 4 colonnes
contenant les formules.
Ces 4 colonnes sont la 4(d),7(g),10(j) et 22(w) or j'encode dans les
colonnes 3,6,8 et 24.
Comment dire dans le TextBox le plus proche de la colonne contenant la
formule, de copier la formule de la ligne précédente de cette colonne dans
la même colone mais dans la ligne du dessous (la même que celle du TexBox) ?
Comme dirait
Chequesexpire : To be or not to be, that is the question !
C'est long mais !!!!


"isabelle" a écrit dans le message news:

bonjoue Albert,

si ces formules sont présente sur la ligne précédente tu pourrais faire
un recopier vers le bas.

exemple avec les données des textbox mit sur la ligne 6, les formule en
colonne C à F
ligne = 6
Range("C" & ligne - 1 & ":F" & ligne).FillDown

isabelle


Bonsoir à tous,

Voici mon problème:

J'ai une feuille de calcul avec 31 colones dont 4 avec des formules.
J'ai un UserForm avec 17 TextBox qui me sert à ajouter une nouvelle
donnée.


Il fait son travail correctement . Le problème c'est que lorsqu'il place
la


nouvelle donnée, à l'endroit voulu, les 4 colonnes devant contenir les
formules et bien ne les contiennent pas.
Est-il possible de les mettre d'office avec un module qui les
placeraient


après l'encodage de la nouvelle donnée ?
Genre de formule:
1) Si(c2="T";"actuellement à Liège";si(c2="P";"actuellement à
Paris";si(c2="N";"actuellement à Namur;"")))
2) Si(d2="";"";si(N2=1;d2+1825;d2+1095))
3) Si((aujourdhui()-h2)>180;"rap à réclamer";"Non))
4) Si(ou(j2="";k2="r";"A faire";si((aujourdhui()-j2)>170;"A FAIRE";"PAS
6


MOIS"))

Merci de m'aider.
Merci d'avance




Avatar
isabelle
bonjour Albert,

une autre solution serait de faire les formules en vba,

'________________________________________________________
Cells(li, 4).Formula = _
"=IF(C" & li & "=""T"",""actuellement à Liège"", IF(C" & _
li & "=""P"",""actuellement à Paris"", IF(C" & li & _
"=""N"",""actuellement à Namur;"""""")))"
'________________________________________________________
Cells(li, 7).Formula = _
"=IF(D" & li & "="""","""",IF(N" & li & _
"=1,D" & li & "+1825,D" & li & "+1095))"
'________________________________________________________
Cells(li, 10).Formula = _
"=IF((TODAY()-H" & li & ")>180,""rap à réclamer"",""Non"")"
'________________________________________________________

il y a une erreur sur la 4ème formule, que doit elle faire au juste ?

isabelle


Merci Isabelle,
Ca devrait marcher si les colonnes sont adjacentes mais ce n'est pas mon
cas.

Voici une partie du code:
TextBox:
private Sub Ville_change()
Dim text as String
Text=Ville
End Sub
---------------------------
et il y en a encore 16
ensuite j'ai le bouton

Private Sub Valider_Click()
Dim Li As Long
Dim shDB As Worksheet
Set shDB=ThisWorkbook.Sheets("CDS")
Li=shDB.Range("a1").CurrentRegion.Rows.Count +1
shDB.Cells(Li,1).Value=Me.Ville.Text
puis Cells(Li,2), (Li,3),(Li,5),(Li,6),(Li,8),(Li,9),(Li,11),(Li,15) etc...
puis
shDB.Rows("1:"&Li).Sort key1:=shDB.Range("a1"),order1:=xlAscending,
_header:=xlYes
Set shDB=Nothing
End Sub
---------------------------
et dans ce code il n'est nullement question d'encoder dans les 4 colonnes
contenant les formules.
Ces 4 colonnes sont la 4(d),7(g),10(j) et 22(w) or j'encode dans les
colonnes 3,6,8 et 24.
Comment dire dans le TextBox le plus proche de la colonne contenant la
formule, de copier la formule de la ligne précédente de cette colonne dans
la même colone mais dans la ligne du dessous (la même que celle du TexBox) ?
Comme dirait
Chequesexpire : To be or not to be, that is the question !
C'est long mais !!!!

"isabelle" a écrit dans le message news:

bonjoue Albert,

si ces formules sont présente sur la ligne précédente tu pourrais faire
un recopier vers le bas.

exemple avec les données des textbox mit sur la ligne 6, les formule en
colonne C à F
ligne = 6
Range("C" & ligne - 1 & ":F" & ligne).FillDown

isabelle


Bonsoir à tous,

Voici mon problème:

J'ai une feuille de calcul avec 31 colones dont 4 avec des formules.
J'ai un UserForm avec 17 TextBox qui me sert à ajouter une nouvelle
donnée.


Il fait son travail correctement . Le problème c'est que lorsqu'il place
la


nouvelle donnée, à l'endroit voulu, les 4 colonnes devant contenir les
formules et bien ne les contiennent pas.
Est-il possible de les mettre d'office avec un module qui les
placeraient


après l'encodage de la nouvelle donnée ?
Genre de formule:
1) Si(c2="T";"actuellement à Liège";si(c2="P";"actuellement à
Paris";si(c2="N";"actuellement à Namur;"")))
2) Si(d2="";"";si(N2=1;d2+1825;d2+1095))
3) Si((aujourdhui()-h2)>180;"rap à réclamer";"Non))
4) Si(ou(j2="";k2="r";"A faire";si((aujourdhui()-j2)>170;"A FAIRE";"PAS
6


MOIS"))

Merci de m'aider.
Merci d'avance






Avatar
Albert
Merci Isabelle
Je vais essaqyer cela lundi au travail.
L'erreur est certainement un oubli de parenthèse
Si(ou(j2="";k2="r");"A faire";si((aujourdhui()-j2)>170;"A FAIRE";"PAS
6 MOIS"))
La cellule doit m'afficher "A faire" ou "Pas 6 six mois" selon le résultat
Dois-je mettre ces fomula dans le code TextXox ou dans le code Valider ?
Merci encore
"isabelle" a écrit dans le message news:

bonjour Albert,

une autre solution serait de faire les formules en vba,

'________________________________________________________
Cells(li, 4).Formula = _
"=IF(C" & li & "=""T"",""actuellement à Liège"", IF(C" & _
li & "=""P"",""actuellement à Paris"", IF(C" & li & _
"=""N"",""actuellement à Namur;"""""")))"
'________________________________________________________
Cells(li, 7).Formula = _
"=IF(D" & li & "="""","""",IF(N" & li & _
"=1,D" & li & "+1825,D" & li & "+1095))"
'________________________________________________________
Cells(li, 10).Formula = _
"=IF((TODAY()-H" & li & ")>180,""rap à réclamer"",""Non"")"
'________________________________________________________

il y a une erreur sur la 4ème formule, que doit elle faire au juste ?

isabelle


Merci Isabelle,
Ca devrait marcher si les colonnes sont adjacentes mais ce n'est pas mon
cas.

Voici une partie du code:
TextBox:
private Sub Ville_change()
Dim text as String
Text=Ville
End Sub
---------------------------
et il y en a encore 16
ensuite j'ai le bouton

Private Sub Valider_Click()
Dim Li As Long
Dim shDB As Worksheet
Set shDB=ThisWorkbook.Sheets("CDS")
Li=shDB.Range("a1").CurrentRegion.Rows.Count +1
shDB.Cells(Li,1).Value=Me.Ville.Text
puis Cells(Li,2), (Li,3),(Li,5),(Li,6),(Li,8),(Li,9),(Li,11),(Li,15)
etc...


puis
shDB.Rows("1:"&Li).Sort key1:=shDB.Range("a1"),order1:=xlAscending,
_header:=xlYes
Set shDB=Nothing
End Sub
---------------------------
et dans ce code il n'est nullement question d'encoder dans les 4
colonnes


contenant les formules.
Ces 4 colonnes sont la 4(d),7(g),10(j) et 22(w) or j'encode dans les
colonnes 3,6,8 et 24.
Comment dire dans le TextBox le plus proche de la colonne contenant la
formule, de copier la formule de la ligne précédente de cette colonne
dans


la même colone mais dans la ligne du dessous (la même que celle du
TexBox) ?


Comme dirait
Chequesexpire : To be or not to be, that is the question !
C'est long mais !!!!

"isabelle" a écrit dans le message news:

bonjoue Albert,

si ces formules sont présente sur la ligne précédente tu pourrais
faire



un recopier vers le bas.

exemple avec les données des textbox mit sur la ligne 6, les formule
en



colonne C à F
ligne = 6
Range("C" & ligne - 1 & ":F" & ligne).FillDown

isabelle


Bonsoir à tous,

Voici mon problème:

J'ai une feuille de calcul avec 31 colones dont 4 avec des formules.
J'ai un UserForm avec 17 TextBox qui me sert à ajouter une nouvelle
donnée.


Il fait son travail correctement . Le problème c'est que lorsqu'il
place




la
nouvelle donnée, à l'endroit voulu, les 4 colonnes devant contenir
les




formules et bien ne les contiennent pas.
Est-il possible de les mettre d'office avec un module qui les
placeraient


après l'encodage de la nouvelle donnée ?
Genre de formule:
1) Si(c2="T";"actuellement à Liège";si(c2="P";"actuellement à
Paris";si(c2="N";"actuellement à Namur;"")))
2) Si(d2="";"";si(N2=1;d2+1825;d2+1095))
3) Si((aujourdhui()-h2)>180;"rap à réclamer";"Non))
4) Si(ou(j2="";k2="r";"A faire";si((aujourdhui()-j2)>170;"A
FAIRE";"PAS




6
MOIS"))

Merci de m'aider.
Merci d'avance








Avatar
isabelle
re bonjour Albert,

la quatrième formule sera :

'________________________________________________________
Cells(li, 20).Formula = _
"=IF(OR(J" & li & "="""",K" & li & _
"=""r""),""A faire"",IF((TODAY()-J" & li & _
")>170,""A FAIRE"",""PAS 6 MOIS""))"
'________________________________________________________

isabelle


Merci Isabelle
Je vais essaqyer cela lundi au travail.
L'erreur est certainement un oubli de parenthèse
Si(ou(j2="";k2="r");"A faire";si((aujourdhui()-j2)>170;"A FAIRE";"PAS
6 MOIS"))
La cellule doit m'afficher "A faire" ou "Pas 6 six mois" selon le résultat
Dois-je mettre ces fomula dans le code TextXox ou dans le code Valider ?
Merci encore
"isabelle" a écrit dans le message news:

bonjour Albert,

une autre solution serait de faire les formules en vba,

'________________________________________________________
Cells(li, 4).Formula = _
"=IF(C" & li & "=""T"",""actuellement à Liège"", IF(C" & _
li & "=""P"",""actuellement à Paris"", IF(C" & li & _
"=""N"",""actuellement à Namur;"""""")))"
'________________________________________________________
Cells(li, 7).Formula = _
"=IF(D" & li & "="""","""",IF(N" & li & _
"=1,D" & li & "+1825,D" & li & "+1095))"
'________________________________________________________
Cells(li, 10).Formula = _
"=IF((TODAY()-H" & li & ")>180,""rap à réclamer"",""Non"")"
'________________________________________________________

il y a une erreur sur la 4ème formule, que doit elle faire au juste ?

isabelle


Merci Isabelle,
Ca devrait marcher si les colonnes sont adjacentes mais ce n'est pas mon
cas.

Voici une partie du code:
TextBox:
private Sub Ville_change()
Dim text as String
Text=Ville
End Sub
---------------------------
et il y en a encore 16
ensuite j'ai le bouton

Private Sub Valider_Click()
Dim Li As Long
Dim shDB As Worksheet
Set shDB=ThisWorkbook.Sheets("CDS")
Li=shDB.Range("a1").CurrentRegion.Rows.Count +1
shDB.Cells(Li,1).Value=Me.Ville.Text
puis Cells(Li,2), (Li,3),(Li,5),(Li,6),(Li,8),(Li,9),(Li,11),(Li,15)
etc...


puis
shDB.Rows("1:"&Li).Sort key1:=shDB.Range("a1"),order1:=xlAscending,
_header:=xlYes
Set shDB=Nothing
End Sub
---------------------------
et dans ce code il n'est nullement question d'encoder dans les 4
colonnes


contenant les formules.
Ces 4 colonnes sont la 4(d),7(g),10(j) et 22(w) or j'encode dans les
colonnes 3,6,8 et 24.
Comment dire dans le TextBox le plus proche de la colonne contenant la
formule, de copier la formule de la ligne précédente de cette colonne
dans


la même colone mais dans la ligne du dessous (la même que celle du
TexBox) ?


Comme dirait
Chequesexpire : To be or not to be, that is the question !
C'est long mais !!!!

"isabelle" a écrit dans le message news:

bonjoue Albert,

si ces formules sont présente sur la ligne précédente tu pourrais
faire



un recopier vers le bas.

exemple avec les données des textbox mit sur la ligne 6, les formule
en



colonne C à F
ligne = 6
Range("C" & ligne - 1 & ":F" & ligne).FillDown

isabelle


Bonsoir à tous,

Voici mon problème:

J'ai une feuille de calcul avec 31 colones dont 4 avec des formules.
J'ai un UserForm avec 17 TextBox qui me sert à ajouter une nouvelle
donnée.


Il fait son travail correctement . Le problème c'est que lorsqu'il
place




la
nouvelle donnée, à l'endroit voulu, les 4 colonnes devant contenir
les




formules et bien ne les contiennent pas.
Est-il possible de les mettre d'office avec un module qui les
placeraient


après l'encodage de la nouvelle donnée ?
Genre de formule:
1) Si(c2="T";"actuellement à Liège";si(c2="P";"actuellement à
Paris";si(c2="N";"actuellement à Namur;"")))
2) Si(d2="";"";si(N2=1;d2+1825;d2+1095))
3) Si((aujourdhui()-h2)>180;"rap à réclamer";"Non))
4) Si(ou(j2="";k2="r";"A faire";si((aujourdhui()-j2)>170;"A
FAIRE";"PAS




6
MOIS"))

Merci de m'aider.
Merci d'avance










Avatar
Albert
Re merci Isabelle
"isabelle" a écrit dans le message news:

re bonjour Albert,

la quatrième formule sera :

'________________________________________________________
Cells(li, 20).Formula = _
"=IF(OR(J" & li & "="""",K" & li & _
"=""r""),""A faire"",IF((TODAY()-J" & li & _
")>170,""A FAIRE"",""PAS 6 MOIS""))"
'________________________________________________________

isabelle


Merci Isabelle
Je vais essaqyer cela lundi au travail.
L'erreur est certainement un oubli de parenthèse
Si(ou(j2="";k2="r");"A faire";si((aujourdhui()-j2)>170;"A FAIRE";"PAS
6 MOIS"))
La cellule doit m'afficher "A faire" ou "Pas 6 six mois" selon le
résultat


Dois-je mettre ces fomula dans le code TextXox ou dans le code Valider ?
Merci encore
"isabelle" a écrit dans le message news:

bonjour Albert,

une autre solution serait de faire les formules en vba,

'________________________________________________________
Cells(li, 4).Formula = _
"=IF(C" & li & "=""T"",""actuellement à Liège"", IF(C" & _
li & "=""P"",""actuellement à Paris"", IF(C" & li & _
"=""N"",""actuellement à Namur;"""""")))"
'________________________________________________________
Cells(li, 7).Formula = _
"=IF(D" & li & "="""","""",IF(N" & li & _
"=1,D" & li & "+1825,D" & li & "+1095))"
'________________________________________________________
Cells(li, 10).Formula = _
"=IF((TODAY()-H" & li & ")>180,""rap à réclamer"",""Non"")"
'________________________________________________________

il y a une erreur sur la 4ème formule, que doit elle faire au juste ?

isabelle


Merci Isabelle,
Ca devrait marcher si les colonnes sont adjacentes mais ce n'est pas
mon




cas.

Voici une partie du code:
TextBox:
private Sub Ville_change()
Dim text as String
Text=Ville
End Sub
---------------------------
et il y en a encore 16
ensuite j'ai le bouton

Private Sub Valider_Click()
Dim Li As Long
Dim shDB As Worksheet
Set shDB=ThisWorkbook.Sheets("CDS")
Li=shDB.Range("a1").CurrentRegion.Rows.Count +1
shDB.Cells(Li,1).Value=Me.Ville.Text
puis Cells(Li,2), (Li,3),(Li,5),(Li,6),(Li,8),(Li,9),(Li,11),(Li,15)
etc...


puis
shDB.Rows("1:"&Li).Sort key1:=shDB.Range("a1"),order1:=xlAscending,
_header:=xlYes
Set shDB=Nothing
End Sub
---------------------------
et dans ce code il n'est nullement question d'encoder dans les 4
colonnes


contenant les formules.
Ces 4 colonnes sont la 4(d),7(g),10(j) et 22(w) or j'encode dans les
colonnes 3,6,8 et 24.
Comment dire dans le TextBox le plus proche de la colonne contenant
la




formule, de copier la formule de la ligne précédente de cette
colonne




dans
la même colone mais dans la ligne du dessous (la même que celle du
TexBox) ?


Comme dirait
Chequesexpire : To be or not to be, that is the question !
C'est long mais !!!!

"isabelle" a écrit dans le message
news:





bonjoue Albert,

si ces formules sont présente sur la ligne précédente tu pourrais
faire



un recopier vers le bas.

exemple avec les données des textbox mit sur la ligne 6, les
formule





en
colonne C à F
ligne = 6
Range("C" & ligne - 1 & ":F" & ligne).FillDown

isabelle


Bonsoir à tous,

Voici mon problème:

J'ai une feuille de calcul avec 31 colones dont 4 avec des
formules.






J'ai un UserForm avec 17 TextBox qui me sert à ajouter une
nouvelle






donnée.
Il fait son travail correctement . Le problème c'est que
lorsqu'il






place
la
nouvelle donnée, à l'endroit voulu, les 4 colonnes devant
contenir






les
formules et bien ne les contiennent pas.
Est-il possible de les mettre d'office avec un module qui les
placeraient


après l'encodage de la nouvelle donnée ?
Genre de formule:
1) Si(c2="T";"actuellement à Liège";si(c2="P";"actuellement à
Paris";si(c2="N";"actuellement à Namur;"")))
2) Si(d2="";"";si(N2=1;d2+1825;d2+1095))
3) Si((aujourdhui()-h2)>180;"rap à réclamer";"Non))
4) Si(ou(j2="";k2="r";"A faire";si((aujourdhui()-j2)>170;"A
FAIRE";"PAS




6
MOIS"))

Merci de m'aider.
Merci d'avance












Avatar
Albert
Isabelle,

Les 3 ères formules marchent très bien.
Pour la 4ème y a un problème:

1) Cells(lLi, 7).Formula = "=IF(D" & lLi & "="""","""",IF(N" & lLi & "=1,D"
&
lLi & "+1825,D" & lLi & "+1095))"
2) Cells(lLi, 9).Formula = "=IF((TODAY()-H" & lLi & ")>180,""rap à
réclamer"",""Non"")"
3)Cells(lLi, 12).Formula = "=IF(OR(J" & lLi & "="""",K" & lLi & "=""r""),""A
FIXER"",IF((TODAY()-J" & lLi & ")>170,""A FIXER"",""PAS 6 MOIS""))"

Pour ces 3 formules tout fonctionne bien mais pas la 4éme.

4) Cells(lLi, 23).Formula = "=IF(C" & lLi & "=""T"",""Actuellement au CHP de
Tournai"", IF(C" & lLi & "=""P"",""Actuellement à l'EDS de PAIFVE"", IF(C"
& lLi & "=""N"",""Actuellement à l'EP de Namur"",IF(C" & lLi &
"=""M"",""Actuellement au CHP de MONS"",""""""""))))"
A cette formule il me dit erreur 1004 (Erreur définie par l'application ou
l'objet.)
shDB.Rows("1:" & lLi).Sort key1:=shDB.Range("A1"), order1:=xlAscending,
header:=xlYes
Set shDB = Nothing
End Sub

Peux-t-on m'aider car je ne vois pas. Merci d'avance

"Albert" a écrit dans le message news:

Re merci Isabelle
"isabelle" a écrit dans le message news: