Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Bug avec activatesheet d'une variable

  • Initiateur de la discussion Temjeh
  • Date de début
T

Temjeh

Guest
Bonjour à tous

Après des heures d'essaie je solicite enfin votre aide:

Cette macro ouvre le classeur vide
ouvre le classeur qui a le nom qui est en range de classeur1
copie les données de classeur qui a le nom qui est en range ouvert en vide
ferme classeur qui a le nom qui est en range et enregistre save as replace classeur qui a le nom qui est en range par vide
ferme vide
Le bug vient de tous les....Windows(Range('A' & i) & '.xls').Activate .......qu'il n'active pas


Code:
For i = 1 To 24
 Application.ScreenUpdating = False
 
    ChDir 'C:\\Program Files\\Territoire 2004\\Territoires\\Maisonneuve'
    Workbooks.Open Filename:= _
        'C:\\Program Files\\Territoire 2004\\Territoires\\Maisonneuve\\vide.xls'
   
   Windows('Classeur1.xls').Activate
    Sheets('Liste').Select
    Workbooks.Open Filename:= _
        'C:\\Program Files\\Territoire 2004\\Territoires\\Maisonneuve\\' & Range('A' & i) & '.xls'
      
     Columns('A:H').Select
     Selection.Copy
          Windows('Vide.xls').Activate
          Range('A1').Select
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
         Range('A1').Select
    Windows(Range('A' & i) & '.xls').Activate
     Sheets('Téléphone1').Visible = True
      Sheets('Téléphone1').Select
       Range('M9:N28').Select
        Selection.Copy
    
    Windows('Vide.xls').Activate
     Sheets('Téléphone1').Visible = True
      Sheets('Téléphone1').Select
       Range('M9').Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
   Windows(Range('A' & i) & '.xls').Activate
    ActiveWindow.Close SaveChanges:=False

   Windows('Vide.xls').Activate
    ChDir 'C:\\Program Files\\Territoire 2004\\Territoires\\Maisonneuve'
      Application.DisplayAlerts = False
       ActiveWorkbook.SaveAs Filename:=Range('A' & i) & '.xls'
         ActiveWindow.Close

Application.ScreenUpdating = True

Next i

Merci

Temjeh
 

ChTi160

XLDnaute Barbatruc
Salut 'Temjeh
je me pose la question de savoir à quoi sert Le .xls dans cette ligne
Windows(Range('A' & i) & '.xls').Activate
peut être ton Problème vient t'il de là
Amicalement
Jean Marie
New Edition
Voilà ce que j'ai mis
Windows(Range('A' & i).Value).Activate
et celà m'active le Classeur dont le nom est dans la cellule
Range('A' & i)
Amicalement
Jean Marie

Message édité par: ChTi160, à: 04/05/2005 14:30
 
J

Ja

Guest
bonjour,

pourquoi ne mettrais-tu pas le nom du classeur a ouvrir dans une variable et en + il me semble que tu fais reference au range en question mais tu precise pas de quel classeur ( c'est peut etre poru sa qu'il ne reconnait pas, par defaut il le prendra le range du classeur courant)

a+
 
T

Temjeh

Guest
Merci de ton aide

Pour la première loope il N'y a pas de prob mais à la 2ème
Si je lui met: Windows(Range('A' & i)).Activate il me bug a la 18ème ligne sur cette ligne.
Donc juste avant je lui ai resélectionné mon classeur1 pour qu'il ouvre le 2ème de range et bug aussi

Windows('Classeur1.xls').Activate
Windows(Range('A' & i)).Activate

Merci

Temjeh
 
J

Ja

Guest
Re ,

je pensais aussi , tu pourais utiliser cells(1,i) si t nom sur sur une ligne ou cells(i,1) si tes noms sont sur une colonne à la place de t range

je pense que c'est le mieux

a+
 
T

Temjeh

Guest
Bonjour Ja

ma liste des classeurs à ouvrir est dans classeur1 en A1 à A24
ptêtre le plus simple serait un code qui loope tout les classeurs de ChDir 'Crogram FilesTerritoire 2004TerritoiresMaisonneuve'

Merci

Temjeh
 

ChTi160

XLDnaute Barbatruc
re
je viens de créer une boucle sur 17 classeurs et celà fonctionne

Sub selection()
For i = 1 To 17
Windows(Range('A' & i).Value).Activate
Sheets('Feuil1').Visible = True
Sheets('Feuil1').Select
ActiveSheet.Range('M9:N28').Select
Next
End Sub
Amicalement
Jean Marie
 
T

Temjeh

Guest
Merci à tous pour votre aide j'ai enfin trouvé un raccourci qui sauvegarde ..saveas de la valeur en A1 qui est aussi le nom du classeur:
Pour ceux qui aimerais l'avoir...remplace les macros et la mise en page sauf les données en range:
Nommé un classeur Uptdate_Vide
Mettre sa liste dans col A des classeurs à modifié et hop il les ouvre un a un ....:0)


Sub Uptdate()

For i = 1 To 3

ChDir 'C:\\Program Files\\Territoire 2004\\Territoires\\Maisonneuve'
Workbooks.Open Filename:= _
'C:\\Program Files\\Territoire 2004\\Territoires\\Maisonneuve\\vide.xls'
Windows('Uptdate_Vide').Activate
Workbooks.Open Filename:= _
'C:\\Program Files\\Territoire 2004\\Territoires\\Maisonneuve\\' & Range('A' & i).Value & '.xls'

Columns('A:H').Select
Selection.Copy
Windows('Vide').Activate
Range('A1').Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range('A1').Select

Windows(Range('A1 ') & XLS).Activate
Sheets('Téléphone1').Visible = True
Sheets('Téléphone1').Select
Range('M9:N28').Select
Selection.Copy

Windows('Vide').Activate
Sheets('Téléphone1').Visible = True
Sheets('Téléphone1').Select
Range('M9').Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

ActiveWindow.SelectedSheets.Visible = False
Windows(Range('A1 ') & XLS).Activate

ActiveWindow.Close SaveChanges:=False
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
'C:\\Program Files\\Territoire 2004\\Territoires\\Maisonneuve\\' & Range('A1').Value & '.xls'
ActiveWindow.Close

Next i

End Sub

A++

Temjeh
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…