mise à jour fichier

  • Initiateur de la discussion nickytchao
  • Date de début
N

nickytchao

Guest
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'
 

Jam

XLDnaute Accro
Salut Nickytchao,

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.

A+
 
N

nickytchao

Guest
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:
 
N

nickytchao

Guest
oups ...un peu merdé la mise en page :whistle:



Code:
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
 
M

MrExcel

Guest
Re-Salut,

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

HTH
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour NickyTchao, re HTH, le Forum

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

Bon Aprèm
@+Thierry
 

Jam

XLDnaute Accro
Salut _Thierry,

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é :(

Message édité par: mrexcel, à: 09/03/2005 14:41
 
N

Nickytchao

Guest
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!
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir NickyTchao MrXL,

Tiens je reviens sur ce Fil... Un truc me chiffonne :

Quant aux variables elles sont déclarées plus haut ca ca va j'ai pa oublié ;-)

Comment ça plus Haut ??? ...

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

Bonne Soirée
@+Thierry

Message édité par: _Thierry, à: 09/03/2005 18:47
 

Discussions similaires

Réponses
9
Affichages
532

Statistiques des forums

Discussions
312 416
Messages
2 088 245
Membres
103 783
dernier inscrit
manax