ignorer copie si feuille n'existe pas

  • Initiateur de la discussion Initiateur de la discussion vbamar
  • 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 !

V

vbamar

Guest
Bonjour,

je cherche à copier les feuilles d'un vieux classeur vers un nouveau

le problème c'est que je voudrais ignorer la copie de la feuille si elle n'existe pas dans le classeur source.

Code:
sub copie()
'ouverture et déclaration variable pour ancien et nouveau classeur (OK)
...
'copie des feuilles 1 à 6 mais parfois l'une d'elle n'existe pas!!!
Dim n As Byte
For n = 1 To 6

'copie
    Windows(ancien).Activate
    Sheets("Feuil" & n).Select
    Range("B2:D20").Select
    Selection.Copy
    Windows(nouveau).Activate
    Sheets("Feuil" & n).Select
    Range("B2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Next
End sub

merci pour votre aide
 
Dernière modification par un modérateur:
Re : ignorer copie si feuille n'existe pas

Bonjour,

peut être en modifiant ceci :
Code:
For n = 1 To 6

par cela :
Code:
For n = 1 To Sheets.Count

sinon il y a également de nombreux exemples sur le forum pour tester si le nom d'une feuille existe dans un classeur...

bonne journée
@+
 
Re : ignorer copie si feuille n'existe pas

Bonjour Pierrot93,
merci pour la réponse.
j'ai expliqué un peu trop simplement ce que je cherche à faire.
Malheureusement sheets.count ne résoud pas mon problème.
en fait j'ai plus de 6 feuilles, mais je n'ai pas besoin de copier les autres.
je cherche à copier 5 ou 6 feuilles suivant mes fichiers sources vers un classeur qui en a 6.
je voudrais ignoré la copie de la 6ème quand elle n'existe pas dans le classeur source car actuellement la feuille 5 se copie dans les feuilles 5 et 6 du classeur d'importation.
 
Dernière modification par un modérateur:
Re : ignorer copie si feuille n'existe pas

Re,

un exemple pour tester si une feuille existe, à adapter à ton projet :
Code:
Sub test()
Dim nomfeuille As String
nomfeuille = "Feuil1"
If Not FeuilleExiste(nomfeuille) Is Nothing Then MsgBox "OK"
End Sub


Function FeuilleExiste(f As String) As Worksheet
On Error Resume Next
Set FeuilleExiste = Worksheets(f)
End Function

bon après midi
@+
 
Re : ignorer copie si feuille n'existe pas

salut

Si... les feuilles ont le même nom (sinon,adapter)
Code:
Sub copie()
'ouverture et déclaration variable pour ancien et nouveau classeur (OK)
'copie des feuilles 1 à 6 mais parfois l'une d'elle n'existe pas!!!
  Dim n As Byte, k As Byte, Nom As String
  For n = 1 To Sheets.Count
    Windows(ancien).Activate
    Nom = Sheets(n).Name
    Sheets("Feuil" & n).Range("B2:D20").Copy
    Windows("nouveau").Activate
    For k = 1 To Sheets.Count
      If Sheets(k).Name = Nom Then
        Sheets(Nom).Select
        Range("B2").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
           :=False, Transpose:=False
        Exit For
       End If
     Next
  Next
End Sub
 
Re : ignorer copie si feuille n'existe pas

je suis allé regarder sur le forum avec les mots clés que vous aviez indiqué et je trouvé ce genre de propositions.
mais je ne souhaite pas de message
comme c'est toujours la même feuille qui manque parfois, une solution consiste à tester si elle existe et à la créer si ce n'est pas le cas pour copier du vide (à la place des valeurs de la page précédente comme c'était le cas)
merci pour votre aide.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
791
Réponses
17
Affichages
1 K
Réponses
5
Affichages
687
Retour