Entrer de données si feuille Excel existe

flstyle

XLDnaute Nouveau
Bonjour a tous,

J'aimerai finir un dossier excel qui est déjà bien entamer (grâce au forum notamment).
Sur celui-ci on peu créer des feuilles (nommées "crédit bail1, crédit bail2, crédit bail3 ...) à partir d'une feuille "modèle" en appuyant sur un bouton (fait en VBA).

Maintenant je souhaiterai faire un récap de toutes les feuilles que je créer.
En clair je veux dire :
Si feuille "crédit bail1" existe alors dans la casse B9 de la feuille "récapitulatif" s'écrit le nom indiquer dans la case B9 de la feuille "crédit bail1".
Puis, en chaîne: Si feuille "crédit bail2" existe alors dans la casse B10 de la feuille "récapitulatif" s'écrit le nom indiquer dans la case B9 de la feuille "crédit bail2".
ETC...


J'ai déjà trouver un code qui pourrai être susceptible de nous aider:

PHP:
Function IsFeuilleExiste(NomFeuille As String) As Boolean
' la fonction renvoie True ou False
On Error Resume Next

Dim Sh As Variant
IsFeuilleExiste = False
For Each Sh In Worksheets
    If Sh.Name = NomFeuille Then
        IsFeuilleExiste = True
    End If
Next

End Function




Sub test()
y = IsFeuilleExiste("crédit bail1") ' renvoie faux ... feuil100 n'existe pas
Z = IsFeuilleExiste("crédit bail2") ' renvoie vrai ...feuil1 existe
End Sub




Voila je vous joint mon dossier.
Ci vous voulez vous pouvez le récupérer après, ça peut vous être utile si vous manipuler beaucoup de crédit-baux.

Merci par avance.

Cordialement.
 

Pièces jointes

  • JC credit bail.xlsm
    91.9 KB · Affichages: 19
  • JC credit bail.xlsm
    91.9 KB · Affichages: 27
  • JC credit bail.xlsm
    91.9 KB · Affichages: 25

Papou-net

XLDnaute Barbatruc
Re : Entrer de données si feuille Excel existe

Bonjour flstyle,

Voici comment j'aurai écrit le code:

Code:
Function IsFeuilleExiste(NomFeuille As String) As Boolean
' la fonction renvoie True ou False
Dim Sh As Variant
For Each Sh In Sheets
    IsFeuilleExiste = IIf(Sh.Name = NomFeuille, True, False)
    If IsFeuilleExiste = True Then Exit For
Next
End Function
Par contre, je ne vois pas bien l'utilité de cette fonction.

Ne serait-il pas préférable d'enregistrer automatiquement la nouvelle feuille dans l'onglet Récapitulatif lors de sa création?

A te lire.

Cordialement.
 

flstyle

XLDnaute Nouveau
Re : Entrer de données si feuille Excel existe

En fait cette fonction va me permettre d'automatiser le transfert d'information.

J'ai refait mon dossier Excel pour que vous compreniez mieux.
Regardez dans la feuille récapitulatif dans les colonnes B


Merci
 

Pièces jointes

  • JC credit bail.xlsm
    60.1 KB · Affichages: 16
  • JC credit bail.xlsm
    60.1 KB · Affichages: 21
  • JC credit bail.xlsm
    60.1 KB · Affichages: 20

Papou-net

XLDnaute Barbatruc
Re : Entrer de données si feuille Excel existe

RE:

Je ne sais si ça répond à ta demande, mais je pense que la solution proposée en pièce jointe est la façon la plus simple d'opérer:

Chaque appui sur le bouton Dupliquer Feuille de l'onglet Modèle crée une nouvelle feuille et l'inscrit automatiquement à la suite dans la colonne B de Récapitulatif.

De ce fait, la fonction IsFeuilleExiste n'a plus d'utilité, à moins que quelquechose m'échappe.

Cordialement.
 

Pièces jointes

  • Copie de JC credit bail-2.xlsm
    83 KB · Affichages: 24
  • Copie de JC credit bail-2.xlsm
    83 KB · Affichages: 32
  • Copie de JC credit bail-2.xlsm
    83 KB · Affichages: 31
Dernière édition:

flstyle

XLDnaute Nouveau
Re : Entrer de données si feuille Excel existe

En fait il se peu qu'une feuille soit supprimer au cour du temps.
En essayant ta formule ceci fonctionne mais si je supprime par exemple credit bail1 je doit supprimer aussi cette ligne dans la feuille "récapitulatif" (jusqu’à la pas de souci) . Mais après quand je re-duplique une page ça me met le nom des pages a la fin dans mon tableau de recap. J'ai essayer de comprendre en vain :(
 

flstyle

XLDnaute Nouveau
Re : Entrer de données si feuille Excel existe

Voila j'ai trouver un truc ,

C'est exactement ce que je souhaite, mais ce n'est pas automatique ( je ne sais pas comment faire en tout cas), je suis obligé d'activer la macro. Et d'autre part il faut que je copie la formule avec différent paramètre 20 fois au minimum ...

Si c'est possible de faire une chaîne ou autre j'sui preneur ;)

PHP:
Option Explicit




Function FeuilleExiste(wk As Workbook, stFeuille) As Boolean
On Error Resume Next
FeuilleExiste = Not (wk.Sheets(stFeuille) Is Nothing)
End Function

Sub copiedecellule()

'Si la feuille "crédit bail1" existe alors copier la cellule B9 de cette feuille  dans la cellule A9 de la feuille "récapitulatif"

If FeuilleExiste(ThisWorkbook, "crédit bail1") Then
Sheets("récapitulatif").Range("A9") = Sheets("crédit bail1").Range("B9")
Else
End If

'Si la feuille "crédit bail2" existe alors copier la cellule B9 de cette feuille  dans la cellule A10 de la feuille "récapitulatif"
If FeuilleExiste(ThisWorkbook, "crédit bail2") Then
Sheets("récapitulatif").Range("A10") = Sheets("crédit bail2").Range("B9")
Else
End If

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 324
Membres
102 862
dernier inscrit
Emma35400