Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Insertion d'une formule avec l'aide d'une macro ne fonctionne pas

  • Initiateur de la discussion Initiateur de la discussion piga25
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

piga25

XLDnaute Barbatruc
Bonjour,

Après de multiples essais et recherches sur le forum j'ai toujours un message d'erreur dans ma macro.

Code:
Sub Transfert(vLign As Long)
Dim i As Byte, Droits As Integer
With ActiveSheet
    .Unprotect
    .Cells(vLign, 2) = ComboBox1
    .Cells(vLign, 3) = TextBox1
    For i = 1 To 1 'ceci en prévision d'autre CheckBox
        If Controls("CheckBox" & i) Then .Cells(vLign, i + 3) = 1 Else: .Cells(vLign, i + 3) = ""
    Next
    .Cells(vLign, 5) = TextBox4
    .Cells(vLign, 6) = TextBox2
    .Cells(vLign, 7) = TextBox3
    .Cells(vLign, 8) = CLng(Label4)
    [COLOR=red].Cells(vLign, 9) = .Formula = "=IF(AND(RC[-3]+RC[-2]>MAINTENANT,RC[-3]+RC[-2]<=MAINTENANT+15*1440),""ALERTE"","""")"[/COLOR]
[COLOR=red][COLOR=black]  .Protect[/COLOR]
[/COLOR]End With
End Sub

Je souhaite intégrer cette formule dans la colonne I:
= SI(ET(F2+G2>MAINTENANT;F2+G2<=MAINTENANT+15*1440);"ALERTE";"")
que j'ai traduit en VBA comme cela :
=IF(AND(RC[-3]+RC[-2]>MAINTENANT,RC[-3]+RC[-2]<=MAINTENANT+15*1440),""ALERTE"","""")"

Lorsque je lance mon code il me met la ligne ou est cette formule en erreur, j'ignore pourquoi 😕😕
 
Re : Insertion d'une formule avec l'aide d'une macro ne fonctionne pas

RE,

Oui j'y avais déjà pensé mais cela ne fonctionne pas, toujours le même message d'erreur.
Pour info, j'ai créé la formule VBA avec l'enregistreur de macro
 
Re : Insertion d'une formule avec l'aide d'une macro ne fonctionne pas

Re,

Je vous mets le texte du message d'erreur :
Erreur d'exécution '438'
Propriété ou méthode non gérée par cet objet

Après CLIC sur débébogage nouveau message :
Impossible d'exécuter le code en mode arrêt
 
Re : Insertion d'une formule avec l'aide d'une macro ne fonctionne pas

bonjour a tous

A tester
Quelque chose du genre:

Code:
Range("A4").Formula = "=IF(AND(F2+G2>NOW(),F2+G2<=NOW()+15*1440),""ALERTE"",)"
 
Re : Insertion d'une formule avec l'aide d'une macro ne fonctionne pas

Bonsoir à tous


A fin de tester, dans ce cas là, je fais ceci.

Code:
Sub pour_y_voir_plus_clair()
[E1].FormulaLocal = "=SI(ET(B1+C1>MAINTENANT();B1+C1<=MAINTENANT()+15*1440);""ALERTE"";"""")"
End Sub
et là, je peux lire en clair la formule dans le code en utilisant FormulaLocal
 
Re : Insertion d'une formule avec l'aide d'une macro ne fonctionne pas

RE le fil

Oups j'ai commis une bourde j'ai bien oublié les parenthèse à MAINTENANT ().😱
Par contre, même en les mettant j'ai toujours la même erreur sur la même ligne:😕
Code:
Sub Transfert(vLign As Long)
Dim i As Byte, Droits As Integer
With ActiveSheet
    .Unprotect
    .Cells(vLign, 2) = ComboBox1
    .Cells(vLign, 3) = TextBox1
    For i = 1 To 1 'ceci en prévision d'autre CheckBox
        If Controls("CheckBox" & i) Then .Cells(vLign, i + 3) = 1 Else: .Cells(vLign, i + 3) = ""
    Next
    .Cells(vLign, 5) = TextBox4
    .Cells(vLign, 6) = TextBox2
    .Cells(vLign, 7) = TextBox3
    .Cells(vLign, 8) = CLng(Label4)
    [COLOR=darkred].Cells(vLign, 9) = .Formula = "=IF(AND(RC[-2]+RC[-1]>NOW[B]()[/B],RC[-2]+RC[-1]<=NOW[B]()[/B]+15*1440),""ALERTE"","""")"
[/COLOR]    .Protect
End With
End Sub

Pour de ce qui est de la formule elle fonctionne parfaitement lorsque je le tape sur une ligne en colonne I, mais ou il y a problème c'est quand je souhaite l'intégrer en même temps que mes autres données.

Staple1600
Si j'ai bien compris ton code, il sert uniquement a voir la formule en clair comme si je la tapais dans une cellule!!
 
Re : Insertion d'une formule avec l'aide d'une macro ne fonctionne pas

re
et ainsi

Code:
   .Cells(vLign, 9)[B].FormulaR1C1 =[/B] _
        "= IF(AND(RC[-3]+RC[-2]>NOW(),RC[-3]+RC[-2]<=NOW()+15*1440), ""ALERTE"","""")"
  ...
End Sub
 
Re : Insertion d'une formule avec l'aide d'une macro ne fonctionne pas

Re


Non , il inscrit aussi dans la cellule

l'avantage et que tu peux écrire tes formules dans ton code VBA comme tu les saisis dans les cellules d'Excel.

C'est plus facile je trouve.

Mais il a un gros désavantage que je te laisse découvrir ... 😉

PS: il nous manque ton code VBA qui utilises la sub Transfert
 
Re : Insertion d'une formule avec l'aide d'une macro ne fonctionne pas

RE le fil

Après pas mal d'essais et surtout grace a vos aides mon code fonctionne :

Code:
Sub Transfert(vLign As Long)
Dim i As Byte, Droits As Integer
With ActiveSheet
    .Unprotect
    .Cells(vLign, 2) = ComboBox1
    .Cells(vLign, 3) = TextBox1
    For i = 1 To 1 'ceci en prévision d'autre CheckBox
        If Controls("CheckBox" & i) Then .Cells(vLign, i + 3) = 1 Else: .Cells(vLign, i + 3) = ""
    Next
    .Cells(vLign, 5) = TextBox4
    .Cells(vLign, 6) = TextBox2
    .Cells(vLign, 7) = TextBox3
    .Cells(vLign, 8) = CLng(Label4)
    ' insertion d'une formule en colonne I
   [COLOR=blue].Cells(vLign, 9).Formula = "=IF(AND(RC[[COLOR=red]-3[/COLOR]]+RC[[COLOR=red]-2[/COLOR]]>NOW(),RC[[COLOR=red]-3[/COLOR]]+RC[[COLOR=red]-2[/COLOR]]<=NOW()+15*1440),""ALERTE"","""")"[/COLOR]
    .Protect
End With
End Sub

Un grand merci à vous tous.

Une chose qui confirme la règle, toujours faire une pause lorsque tout semble mal fonctionner. Après c'est sur on y voit beaucoup plus claire, et je confirme vous y êtes pour beaucoup. Encore une fois merci.
 
Re : Insertion d'une formule avec l'aide d'une macro ne fonctionne pas

Bonsoir,
Plusieurs choses posent pb
Enlève le range devant cell et revoie la formule
En outre, tu devrais renvoyer des dates dans les cellules plutôt que du texte
Code:
    If TextBox2 <> "" Then .Cells(vLign, 6) = [COLOR="Blue"]CDate[/COLOR](TextBox2)
    If TextBox3 <> "" Then .Cells(vLign, 7) = [COLOR="Blue"]CDate[/COLOR](TextBox3)
    .Cells(vLign, 8) = CLng(Label4)
    ' insertion d'une formule en colonne I
    .Cells(vLign, 9).Formula = "=IF(AND(RC[[COLOR="Blue"]-3[/COLOR]]+RC[[COLOR="Blue"]-2[/COLOR]]>NOW(),RC[[COLOR="Blue"]-3[/COLOR]]+RC[[COLOR="Blue"]-2[/COLOR]]<=NOW()+15*1440),""ALERTE"","""")"
A+
kjin
 
Re : Insertion d'une formule avec l'aide d'une macro ne fonctionne pas

Re le fil,

Bonjour Kjin,

Merci pour la rectif concernant l'envoi de date au lieu du texte.

Comme je vois que tu viens régulièrement à mon secours, je me permet de te demander s'il n'y a pas une solution plus pratique afin de créer une boîte de dialogue dès que le suis à 15 mn de l'heure de rappel de l'alerte avec possibilité de choisir cette durée.

Tel que mon fichier se trouve, je complète le résultat de ma formule par une MFC, mais je vois que je vais avoir un problème, c'est à dire dès que la ligne sera hors éloignée, je ne verrai pas cette MFC. C'est pour cela que je me demande s'il n'existe pas une solution VBA.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…