fonction si en VBA avec lien sur autre feuille

Yopub

XLDnaute Junior
Bonjour, pardonnez le novice en VBA que je suis, mais je bute depuis un bon moment sur un problème, probablement minime.
Je cherche à écrire dans une macro, la fonction SI dans une cellule d'une feuille, faisant référence à une cellule d'une autre feuille dont le nom est introduit par une inputbox.
Actuellement j'en suis à :
Range("D3").Select 'de la feuille active clairement identifiée
ActiveCell.FormulaR1C1 = _
"=IF(NomAgent!R[23]C[-2]=FALSE,""Horaire"",""Mensualité"")"

La feuille "volatile" s'appelle "NomAgent". Cette variable est bien reconnue puisque, plus loin dans la macro, je m'en sert et cela fonctionne.
Il doit y avoir une écriture spécifique pour expliquer où je veux trouver la cellule référente. Du style "Sheets(NomAgent).Cells(26,2)!"
Y a t il une bonne âme pour faire baisser mon taux d'énervement actuel ?
Par avance merci
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : fonction si en VBA avec lien sur autre feuille

Bonjour Yopub et bienvenu, bonjour le forum,

Je te propose le code ci-dessous à adapter :
Code:
Sub Macro1()
Dim a As String 'déclare la variable a
 
debut: 'étiquette
a = InputBox("Tapez le nom de l'onglet", "ONGLET") 'définit la variable a
If a = "" Then Exit Sub 'si pas renseigné ou bouton "Annuler", sort de la procédure
On Error Resume Next 'si une erreur se produit, passe à la ligne suivante
With Sheets(a) 'prend en compte l'onglet renseigné (provoque une erreur si cet onglet n'existe pas)
    If Err > 0 Then 'condition : si une erreur est provoquée
        MsgBox "l'onglet spécifié n'existe pas ! Retapez le nom de l'onglet." 'message
        GoTo debut 'retourne à la boîte d'entrée
    End If 'fin de la condition
    On Error GoTo 0 'annule la gestion des erreurs
    'place "Horaire" dans la cellule C3 de l'onglet actif si la cellule B26 de l'onglet renseigné est "FAUX"
    'place "Mensualité" dans la cellule C3 de l'onglet actif si la cellule B26 de l'onglet renseigné n'est pas "FAUX"
    ActiveSheet.Range("D3").Value = IIf(.Cells(26, 2).Value = False, "Horaire", "Mensualité")
End With 'fin de la prise en compte de l'onglet renseigné
End Sub
 

Yopub

XLDnaute Junior
Re : fonction si en VBA avec lien sur autre feuille

Bonjour le forum et merci pour les 2 réponses Robert et pierrejean. Pardon d'avoir tardé à me signaler, mais je croyais que ce site renvoyait sur ma messagerie une alerte de réponse. Novice, je vous dis!
Je prend bonne note de ces 2 propositions et les teste d'ici demain. Je vous recontacte après, pour vous donner le résultat des courses.
A bientôt
 

Yopub

XLDnaute Junior
Re : fonction si en VBA avec lien sur autre feuille

:)
Bonjour à toutes et à tous, messieurs je viens de consulter attentivement vos 2 propositions. Celle de pierrejean colle parfaitement à ma requête. La subtilité "d'écrire" la formule dans la cellule au lieu de calculer sous VBA la réponse, je l'avais trouvé dans un forum. Je l'ai même appliquée dans la suite de la macro. Mais pour cette ligne ci, cela ne marchait pas. Maintenant si. VBA doit reconnaître la patte de l'expert et pas celle du débutant !
Cela dit, la version de Robert m'intéresse aussi car elle a l'avantage de partir de la inputbox et d'envisager tous les cas de figure. Cela risque de me servir plus tard.
Au passage, il m'est arrivé de tomber sur une "erreur 40036".
Cela a bloqué sur le pas suivant :
ActiveSheet.Unprotect
Y-a pas plus simple ! Hier cela fonctionnait parfaitement, et plus maintenant!
Je l'ai effacé, je l'ai réécrit : rien...
Je l'ai de nouveau effacé et je suis bêtement passé par l'enregistreur de macro : toujours la même erreur !
Il y a quelques jours, je suis tombé sur la cette erreur, mais sur un autre pas de programme. Le simple fait de fermer le fichier, de le réouvrir, et tout fonctionnait normalement.
D'après quelques sites faisant références à l'erreur 40036, j'ai l'impression que cela relève plus du bug que d'une véritable erreur.
Avez-vous des pistes en la matière ?
A bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 022
Membres
104 006
dernier inscrit
CABROL