Vérifier si feuille existe [Résolu]
A voir également:
- Vérifier si feuille existe
- Vérifier si feuille existe ✓ - Forum - VB / VBA
- Vba vérifier si une feuille existe ✓ - Forum - Excel
- Supprimer feuille excel si elle existe ✓ - Forum - Excel
- VBA Condition "Si la feuille existe" Alors... - Forum - VB / VBA
- VBA Condition : Si une feuille portant le nom d'une cellule exis - Forum - VB / VBA
2 réponses
jordane45
- Messages postés
- 31088
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 19 janvier 2021
Bonjour,
Tu pourrais, par exemple, utiliser une fonction du genre
et donc, dans ton code, ensuite, faire
Tu pourrais, par exemple, utiliser une fonction du genre
Function FExist(NomF As String) As Boolean ' test si la feuille existe Application.ScreenUpdating = False On Error Resume Next FExist = Not Sheets(NomF) Is Nothing Application.ScreenUpdating = True End Function
et donc, dans ton code, ensuite, faire
if FExist(FICHIER1) Then
Thibault
Parfait ! Merci beaucoup cependant j'ai un souci qui persiste si vous pouvez m'aider je vous en serai vraiment reconnaissant mais sinon tant pis. Je vous explique :
J'ai deux onglets avec du contenu. La macro au lancement crée deux nouveaux onglets qui sont un peu un miroir avec un mélange des deux valeurs. Le souci c'est que la copie fonctionne pour un des onglets mais pas pour les deux. Mon souci doit venir de mon If mais je ne trouve pas de bonne solution.
Voici mon code :
J'ai deux onglets avec du contenu. La macro au lancement crée deux nouveaux onglets qui sont un peu un miroir avec un mélange des deux valeurs. Le souci c'est que la copie fonctionne pour un des onglets mais pas pour les deux. Mon souci doit venir de mon If mais je ne trouve pas de bonne solution.
Voici mon code :
Sub test() Dim i As Integer, j As Integer, k As Integer, m As Integer, Feuille_X As String, Feuille_Y As String, Ligne_vide As Integer Dim Ligne_du_haut As Integer, Ligne_du_bas As Integer, Nombre_de_lignes As Integer, Nombre_de_colonnes As Byte Dim Fichier1 As String Dim Fichier2 As String Dim Fichier3 As String Dim Fichier4 As String Application.ScreenUpdating = False Fichier1 = InputBox("Indiquez votre 1er Fichier ? Homog?n?iser", "Fichier1") Fichier2 = InputBox("Indiquez votre 2nd Fichier ? Homog?n?iser", "Fichier2") Fichier3 = Fichier1 & "post" Sheets.Add After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Select Sheets(Sheets.Count).Name = Fichier3 Worksheets(Fichier1).Range("A1:AZ128").Copy ActiveSheet.Paste Destination:=Worksheets(Fichier3).Range("A1:AZ128") Fichier4 = Fichier2 & "post" Sheets.Add After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Select Sheets(Sheets.Count).Name = Fichier4 Worksheets(Fichier2).Range("A1:AZ128").Copy ActiveSheet.Paste Destination:=Worksheets(Fichier4).Range("A1:AZ128") With ActiveSheet Range("A2:Z" & Rows.Count).ClearContents Range("A2:Z" & Rows.Count).Interior.Pattern = xlNone If FExist(Fichier3) Then Feuille_X = Fichier1 Feuille_Y = Fichier2 End If If FExist(Fichier4) Then Feuille_X = Fichier2 Feuille_Y = Fichier1 End If 'la suite n'est pas vraiment nécessaire au souci. Puisqu'avec cette position de If c'est toujours le second If qui prime : If FExist(Fichier4) Then Feuille_X = Fichier2 Feuille_Y = Fichier1 End If
jordane45
- Messages postés
- 31088
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 19 janvier 2021
Je viens de tester... et donc.. aucun souci
J'ai ajouté du "debug"
Ce qui donne le résultat
J'ai ajouté du "debug"
Debug.Print Fichier3 If FExist(Fichier3) Then Debug.Print "Je suis passé dans le IF Fichier3" Feuille_X = Fichier1 Feuille_Y = Fichier2 End If Debug.Print Fichier4 If FExist(Fichier4) Then Debug.Print "Je suis passé dans le IF Fichier4" Feuille_X = Fichier2 Feuille_Y = Fichier1 End If
Ce qui donne le résultat

Thibault
>
jordane45
- Messages postés
- 31088
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 19 janvier 2021
Le souci est que dans Feuil1post il devrait y avoir le même style de tableau que dans Feuil2post. C'est là ou je bloque, j'ai mal du écrire mon code, mais dans l'idée le traitement se fait bien pour la Feuil2, mais pas pour la Feuil1.
jordane45
- Messages postés
- 31088
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 19 janvier 2021
C'est donc bien ce que je disais .. il n'y a aucun souci avec tes IF.
Là, c'est donc un souci d'organisation de ton code.
Je t'invite donc à créer une discussion propre à ce souci ( et pense à y remettre le lien vers ton classeur.)
Là, c'est donc un souci d'organisation de ton code.
Je t'invite donc à créer une discussion propre à ce souci ( et pense à y remettre le lien vers ton classeur.)