Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2011, 17h45   #1
Invité de passage
 
Femme
Inscription : novembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : novembre 2011
Messages : 3
Points : 1
Points : 1
Par défaut Pb création de page

Bonjour,

J'ai créé ce début de programme ci dessous.
L'objectif est de récupérer les données d'un classeur x et de les copier dans le classeur y en les triant. C'est à dire que les données de l'onglet OCTOBRE du classeur x doivent se coller dans la feuille 10 du classeur y.
Mais parfois j'aurais besoin de remettre à jour les données du classeur y (pour des cas de saisie en retard dans le classeur x).

Ce début de programme a pour objectif de demander à l'utilisateur du classeur y sur quel mois on travaille.
Si la feuille existe déjà car les données ont déjà été importées dans y je souhaite tout supprimer pour dans la suite du programme faire un nouveau collage.
Si la feuille n'existe pas je souhaite en créer une portant le mois (ex : 10 pour octobre)
Le problème est que le programme bug mais je ne vois pas pourquoi. Parfois il me crée une feuille sans renommer avec le mois mais par exemple Feuil10.
Merci de m'aider à trouver l'erreur de programmation.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
Sub Copier_Suivi()
 
Dim FWS As Worksheet
Dim Mois As String
Dim NomFle As String
 
'Mois à mettre à jour
Worksheets("Bilan").Activate
Mois = InputBox("Mois (mm)")
Cells(2, 2) = Mois
 
'Suppression si feuille existante (Mois) puis création d'une nouvelle feuille
Dim Wsh As Worksheet
 
Application.DisplayAlerts = False
 
For Each Wsh In ActiveWorkbook.Worksheets
    If Wsh.Name = Mois Then
        Wsh.Delete
        Sheets.Add
        ActiveSheet.Name = Mois
    End If
Exit For
 
Next
Application.DisplayAlerts = True
 
Sheets.Add
ActiveSheet.Name = Mois
 
ActiveWorkbook.Save
La suite du programmme consistera à coller les donner dans la cells(3,1) de la feuille créée.
prisci2785 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 17h58   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
Bonjour,

Le End For ne devrait pas se trouver dans le IF?
Tu fais deux fois de suite ajouter une feuille si elle existe déjà et elle ne peut pas la deuxième être renommée avec le même nom.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
Sub Copier_Suivi()
 
Dim FWS As Worksheet
Dim Mois As String
Dim NomFle As String
 
'Mois à mettre à jour
Worksheets("Bilan").Activate
Mois = InputBox("Mois (mm)")
Cells(2, 2) = Mois
 
'Suppression si feuille existante (Mois) puis création d'une nouvelle feuille
Dim Wsh As Worksheet
 
Application.DisplayAlerts = False
'Suppression si la feuille Mois existe
For Each Wsh In ActiveWorkbook.Worksheets
    If Wsh.Name = Mois Then
        Wsh.Delete
         Exit For
    End If 
Next
Application.DisplayAlerts = True
'Création de la nouvelle feuille Mois
Sheets.Add
ActiveSheet.Name = Mois
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/11/2011, 08h54   #3
Invité de passage
 
Femme
Inscription : novembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : novembre 2011
Messages : 3
Points : 1
Points : 1
Cela ne fonctionne toujours pas.
J'ai ce message d'erreur : "Impossible de renommer une feuille comme une autre feuille, une bibliothèque d'objets référencée ou un classeur référencé par Visual Basic"

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
For Each Wsh In ActiveWorkbook.Worksheets
    If Wsh.Name = Mois Then
        Wsh.Delete
        Sheets.Add
        ActiveSheet.Name = Mois
       Exit For
    End If
 
Next
Application.DisplayAlerts = True
Sheets.Add
ActiveSheet.Name = Mois
ActiveWorkbook.Save
Le code ActiveSheet.Name = Mois situé après le Next crée un bug (surlignage en jaune)
prisci2785 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 11h41   #4
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Applique le code de carden752, tu as remis l'ajout de deux fois la feuille avec le même nom.
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 14h23   #5
Invité de passage
 
Femme
Inscription : novembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : novembre 2011
Messages : 3
Points : 1
Points : 1
Ah oui. Merci. J'avais pas vu toutes les modifs à faire.
prisci2785 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h49.


 
 
 
 
Partenaires

Hébergement Web