ignorer copie si feuille n'existe pas

vbamar

XLDnaute Nouveau
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 édition:

Pierrot93

XLDnaute Barbatruc
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
@+
 

vbamar

XLDnaute Nouveau
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 édition:

Pierrot93

XLDnaute Barbatruc
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
@+
 

Si...

XLDnaute Barbatruc
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
 

vbamar

XLDnaute Nouveau
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.
 

Discussions similaires

Réponses
5
Affichages
177

Statistiques des forums

Discussions
312 502
Messages
2 089 046
Membres
104 010
dernier inscrit
Freba