Mes feuilles on un problème ou ma condition IF est elle fausse ?

Fermé
Stuart88 Messages postés 5 Date d'inscription mardi 20 octobre 2015 Statut Membre Dernière intervention 23 octobre 2015 - 23 oct. 2015 à 21:11
Le Pingou Messages postés 12182 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 7 novembre 2024 - 1 nov. 2015 à 17:31
Bonjour,

je revien vers vous car je ne comprend pas pourquoi ma condition if ne fonctionne pas, pourtant j'ai essayer de bien suivre ce que j'ai pu trouvé sure les différents forum et aide excel,

j'ai un document qui fais plus de 110 feuilles, et je doit copie toute une colonne d'une feuille pour la remettre dans la dernier, mais à partir de la feuille 91 il y a une colonne qui est crée et donc mes ligne pour de macro automatique ne son plus correcte.

alors j'aimerais faire avec la condition IF et j'ai fais comme suite,

Option Explicit
Sub Copie_Feuille()
Dim NomF_Nouveau As String, NomF_Ancien As String, i As Integer

NomF_Ancien = Sheets(Sheets.Count).Name
NomF_Nouveau = Sheets.Count + 1

Sheets(NomF_Ancien).Copy After:=Sheets(NomF_Ancien)
ActiveSheet.Name = NomF_Nouveau

Range("K12").Formula = "=H12-'" & NomF_Ancien & "'!H12"
Range("L12").Formula = "='" & NomF_Ancien & "'!K12"
Range("M12").Formula = "='" & NomF_Ancien & "'!L12"
Range("K12:M12").Copy Range("K12:M12", Range("K12:M42"))

Sheets(ActiveSheet.Index - 49).Activate

For i = 1 to 90

If Worksheets(i).Name Then
Range("A12").Copy Sheets(Sheets.Count).Range("A1")
Else
Range("D12").Copy Sheets(Sheets.Count).Range("A1")
End If
Next i

Sheets(NomF_Nouveau).Activate
End Sub


Mais mes feuilles ne son pas reconnue ni par le therms Feuil1 ou 1 ou par le nom de la feuille qui son "20 JUIN 15" par exemple
j'aurais bien voulus savoir si vous savez comment faire.

Merci d'avance

A voir également:

6 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
24 oct. 2015 à 04:55
Bonjour
If Worksheets(i).Name Then

je traduis: si la feuille(i) alors quelle est la condition?
Cdlt
0
Bonjour

Ma condition s'est que si une des feuilles de 1 à 90 est sélectionné alors je fais ce copie collé si on l'autre
Cdt
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
25 oct. 2015 à 03:30
Bonjour
Si vos feuilles de nomment 1, 2, 3, .....109, 110, 111 etc , ça marche
Quels noms leurs donnez vous?
Comme doit s'appeler la nouvelle feuille?
Donnez quelques exemples
Cdlt
0
Bonjour

Le nom des feuilles son de types

30 juin 15
7 juil 15
21 juil 15
28 juil 15
Et ainsi de suite, toutes les semaines une nouvelle feuilles est créé vendredi prochain je créée la feuille nommé 30 oct 15

Le problem vien de c'est nom pasque quand je teste ma macro sur un nouveau tableau Excel il n'y a pas de souci pour qui trouve les feuilles, mais vue que j'ai changé les noms il ne trouve plus
Cdt
0
Le Pingou Messages postés 12182 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 7 novembre 2024 1 448
25 oct. 2015 à 17:42
Bonjour,
Est-ce que votre code mentionné au début vous renvoie un message d'erreur ?
Si oui, texte du message et quelle est la ligne surlignée en jaune dans le code?
0
Bonjour,

La ligne qui est surligne est

If worksheets(i). Name then

Avec comme erreur

Erreur d'exécution n°13

Merci
0
Le Pingou Messages postés 12182 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 7 novembre 2024 1 448
25 oct. 2015 à 21:43
Bonjour,
Merci de la réponse. Il manque la référence pour la condition (je n'ai pas trouvé cette référence...) :
Ce devrait-être de cette forme :
If Worksheets(i).Name <> La référence Then



0
Bonsoir,

Tu veux dire quoi par la référence, pasque je voie pas la désolé

Cdt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12182 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 7 novembre 2024 1 448
26 oct. 2015 à 23:02
Bonjour,
Eh bien pour le
If Worksheets(i).Name <> La référence Then 
il doit y avoir un critère (la référence) qui vous permet d'avoyer à l'instruction si vrai .... vers :
Range("A12").Copy Sheets(Sheets.Count).Range("A1")
Et si faux .....vers :
Range("D12").Copy Sheets(Sheets.Count).Range("A1")


Remarque j'ai compris que votre code commence par ajouter une feuille au classeur (copier/coller la dernière feuille) et la nommer avec le nombre total des feuilles.
Puis vous modifier diverse formules de la feuille.
Mais après c'est impossible de comprendre ce que vous voulez réaliser
D'où sort la valeur ....-49 .... !
Pourquoi une boucle de 1 à 90 .....si votre classeur à déjà plus de 90 feuilles....

0
Bonjour,
Désolé pour le temps de réponse j'ai pas eu le temps ces derniers temps.

Le-49 c'est pasque la dernier feuilles créé va cherche les infos sur l'année passée donc 49 feuilles en arrière et cela pour toute les nouvelles créé.
Le faite de faire une boucle de la 1 à 90 c'est pasque le tableau à un colonne en moins sur les feuilles la et à partir de la 91 il y a une colonne en plus.

Merci
0
Le Pingou Messages postés 12182 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 7 novembre 2024 1 448
1 nov. 2015 à 17:31
Bonjour,
Merci.
Mais alors c'est quoi qui ne marche pas... vous ne dites rien sur la première partie de mon message?
Mais cela ne me permet pas de mieux comprendre votre problème.
Eventuellement mettre votre fichier sur https://www.cjoint.com/ et poster le lien

0