N.B: ne vous arrêtez ici que si vous avez le temps de lire lol ;-)
voilà le problème: j'ai crée un programme de 'gestion de données' via Excel & VBA il y a 2 ans.
Il est utilisé pour créer des fiches techniques pour les produits de ma boutique.
Des fiches ont été crées et depuis les choses ont évolué, les macros à l'ouverture du fichier ont changé.
Il faudrait que je puisse mettre à jour les macros lancées à l'ouverture d'une ancienne fiche.
Je suis pas si je suis très clair.
Avant à l'ouverture du fichier je lançais par exemple les macros a et b,
maintenant je voudrais lancer a, b et c....
Mais je ne sais pas comment modifier les lignes vba du fichier 'en live'
Ouais c'est vrai t'es pas très clair, surtout sur le côté 'live'...là je sèche !
Nan en fait j'vois pas bien ton problème:
Tu ouvres XL puis ton fichier qui contient les macros. Hop direction le VBE via ALT+F11 et tu modifies tes macros !!!
Bon, j'crois pas que la soluce soit la bonne mais si tu pouvais en dire un peu plus ce serait mieux.
Ouep... j'me doutais que c'était pas clair mais c'est pas trop grave j'ai trouvé un moyen de contourner l'pb...
Mais là je butte ancore....
La macro suivante est lancée par le fichier nommé 'Donnessai.xls'
Mon but est de supprimer les feuilles clients, réels et données de tous les fichiers .xls ouverts, sauf pour 'Donnessai.xls', qui contient aussi une feuille nommée 'données.xls'
A la fin on vient copier le feuille 'Données' du fichier 'Donnessai.xls'*
Le pb c'est que l'opération s'effectue aussi pour le fichier Donnessai, ce que je veux éviter...
Code:
[size=2]Sub copie_feuille()
Application.DisplayAlerts = False
For Each Openworkbook In Application.Workbooks
If Openworkbook.Name = 'Donnessai' Then
Else
For Each Availablesheet In Openworkbook.Worksheets
If Availablesheet.Name = 'Clients' Then
Sheets('Clients').Delete
ElseIf Availablesheet.Name = 'Réels' Then
Sheets('Réels').Delete
ElseIf Availablesheet.Name = 'Données' Then
Sheets('Données').Delete
End If
Next Availablesheet
Call Copie_donnees(Openworkbook)
End If
Next Openworkbook
Application.DisplayAlerts = True
End Sub[/size]
J'ai essayé aussi en mettant If Openworkbook.Name = 'Donnessai.xls', apparemment le pb vient pas de la
:unsure:
Sub copie_feuille()
Application.DisplayAlerts = False
For Each Openworkbook In Application.Workbooks
If Openworkbook.Name = 'Donnessai' Then
Else
For Each Availablesheet In Openworkbook.Worksheets
If Availablesheet.Name = 'Clients' Then
Sheets('Clients').Delete
ElseIf Availablesheet.Name = 'Réels' Then
Sheets('Réels').Delete
ElseIf Availablesheet.Name = 'Données' Then
Sheets('Données').Delete
End If
Next Availablesheet
Call Copie_donnees(Openworkbook)
End If
Next Openworkbook
Application.DisplayAlerts = True
End Sub
Dans ton code un If suivi direct d'un Else c'est pas bô bô, utilise plutôt ça:
Code:
If Not .... Then
et vire le Else
Aurais-tu la gentilesse de mettre un p'tit Select Case en lieu et place de If..ElseIf... genre:
Code:
Select Case Availablesheet.Name
Case 'Clients','Réels','Données'
Sheets(Availablesheet.Name).Delete
Case Else
'Ne rien faire ou autre chose :)
End Select
Bon alors tout à fait OK pour le If Not... et le Select Case dans ce cas là, en fait j'en étais resté au poste précédent mais je viens de raffraichir...
Par contre zéro pointé pour les déclarations de Variables !!!
Dim Openworkbook As Workbook Dim Availablesheet As Worksheet
HTH c'est Hope This Helps déformation lié aux posts sur des sites anglophones...
Et pour une fois que j'parle pas des variables...ben hop, le _Thierry lui l'oubli pô
En fait y'a un truc très chiant, c'est que je suis déconnecté du site assez souvent (j'dois mettre trop longtemps à répondre) et donc j'apparaît en visiteur en non plus en loggé
Merci mes gens, ca roule pour ça, j'étais persuadé d'avoir tenté le coup avec 'Donnessai.xls' et ca avait merdé, mais le principal c'est que la ca marche...
Pour ce qui est du If Not ben ouai c'est plus bô merci bien ;-)
Le select case effectivement faut j'revois un p'ti peu la propreté d'mon programme lol ahlala les écoles généralistes v'la c'ke ca fait on fai de tout mais pas bcp... bref pas là pour parler d'ca!
Quant aux variables elles sont déclarées plus haut ca ca va j'ai pa oublié ;-)
@ bi1tô pour de nouvelles aventures avec Nickytchao!
Merci!
En dehors de la Sub copie_feuille()... Attention j'ai déjà enguirlandé un autre intervenant qui avait des gros soucis à cause de la même chose Lien supprimé, si vos Variables n'ont pas d'Utilité Publique, elles n'ont strictement rien à faire en dehors de toutes Sub ou Function...