Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1230 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Basique:Sélection Worksheet Excel depuis une macro ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Basique:Sélection Worksheet Excel depuis une macro ?

n°1972475
Flyhi99
Posté le 10-03-2010 à 08:40:44  profilanswer
 

Bonjour à tous,
Je suis novice en programamtion VBA et ma question va probablement vous paraître stupide, mais je n'y arrive pas tout seul, et j'ai grand besoin de votre aide.
 
J'aimerais reprendre des données depuis plusieurs fichiers, dont les noms varient, pour les consolider dans un seul fichier de résultat. Si le nom du fichier source est connu, la macro de copier / coller ne me pose pas de problème. Mais lorsque je veux pouvoir choisir le fichier source à ouvrir, je bute sur ceci :
 
Sub Consolide()
    NomFichier = Application.GetOpenFilename()
    If NomFichier <> False Then
    MsgBox "Utilisation du fichier " & NomFichier, vbOKOnly, "Confirmation"
    Else: MsgBox "Opération annulée ", vbOKOnly, "Confirmation": End
    End If
    Workbooks.Open Filename:=NomFichier
    '
    ' Ici c'est bon, le fichier Excel est ouvert et je peux sélectionner mes
    ' données. Je fais diverses opérations, je copie dans un fichier résultat,
    ' puis j'aimerais resélectionner le fichier que je viens d'ouvrir
    '
    Windows(NomFichier).Activate
    '
    ' et ici J'obtient err. d'execution : 9
    ' L'indice n'appartient pas à la sélection
    '
End Sub
 
 
Au secours....  :??:  

mood
Publicité
Posté le 10-03-2010 à 08:40:44  profilanswer
 

n°1973243
hush hush
je savais que ça te plairait
Posté le 12-03-2010 à 11:37:39  profilanswer
 

essaye avec workbooks(NomFichier).activate

n°1973246
SuppotDeSa​Tante
Aka dje69r
Posté le 12-03-2010 à 11:39:59  profilanswer
 

Bonjour
 
Vérifie que tu as toujours quelque chose dans ta variable NomFichier


---------------
Soyez malin, louez entre voisins !
n°1973345
Flyhi99
Posté le 12-03-2010 à 16:48:00  profilanswer
 

Ca ne fonctionne pas, j'ai toujours la même erreur.  
La variable NomFichier contient bien le nom du fichier puisque j'arrive à l'ouvrir.  
Mais est-ce que Windows() ou Workbooks() n'attend pas que le nom du fichier, (Ex: xxx.xls), sans tout le chemin ?
Si oui, comment faire ?

n°1973415
SuppotDeSa​Tante
Aka dje69r
Posté le 12-03-2010 à 23:19:13  profilanswer
 

Avant ton Windows(NomFichier).Activate fais un MsgBox NomFichier pour voir si ta variable contient toujours le nom du fichier.
Comme tu as du traitement au milieu que tu ne nous a pas mis, on ne sait pas s'il n'y a pas qqchose qui ferait perdre ta variable.


Message édité par SuppotDeSaTante le 12-03-2010 à 23:19:37

---------------
Soyez malin, louez entre voisins !
n°1973817
Flyhi99
Posté le 15-03-2010 à 09:02:08  profilanswer
 

La variable contient toujours le nom du fichier complet, y compris son chemin. Je pense que c'est pour cela que la commande Windows ne fonctionne pas. Je devrais extraire seulement le nom du fichier de la variable NomFichier. Une idée simple pour faire ça ???

n°1974120
SuppotDeSa​Tante
Aka dje69r
Posté le 16-03-2010 à 11:53:10  profilanswer
 

Hello
 
Quelque chose comme ca devrait le faire :

Code :
  1. 'On utilise une autre variable pour le traitement, _
  2. pour avoir NomFichier comme variable de référence en fin de traitement _
  3. en gros, tu fais un copier/coller de ce code avant ton Windows(NomFichier).Activate
  4. Dim NomFichierLong As String, x As Integer
  5. NomFichierLong = NomFichier
  6. 'On passe chaque caractere un par un en partant de la fin
  7. For x = Len(NomFichierLong) To 1 Step -1
  8.     'Si le caractere sur lequel on est, est = à \
  9.     If Mid(NomFichierLong, x, 1) = "\" Then
  10.         'On prend les derniers caracteres jusqu'au \
  11.         NomFichier = Right(NomFichierLong, Len(NomFichierLong) - x)
  12.         'on sort de la boucle
  13.         Exit For
  14.     End If
  15. Next x


Message édité par SuppotDeSaTante le 16-03-2010 à 12:08:05

---------------
Soyez malin, louez entre voisins !
n°1974379
Flyhi99
Posté le 17-03-2010 à 09:43:11  profilanswer
 

Super ! C'est parfait. Je m'en sort avec ça.
Dernière question : Je referme mon fichier avec  
    Windows(NomFichier).Activate
    ActiveWorkbook.Close False
Il ne me demande plus si je veux sauvegarder, mais par contre, comment éviter le message "Le presse papier contient un grand nombre d'information..." et la confirmation (Oui/Non/Annuler) ?

n°1974413
SuppotDeSa​Tante
Aka dje69r
Posté le 17-03-2010 à 10:10:30  profilanswer
 

Avec un Application.DisplayAlerts = False ca ne resou pas le souci ?


---------------
Soyez malin, louez entre voisins !
n°1974911
Flyhi99
Posté le 18-03-2010 à 14:33:44  profilanswer
 

YesssSSS ! Merci infinimment pour votre précieuse aide ! C'est mon premier "vrai" script VBA, un peu plus compliqué que par enregistrement auto, et c'est GENIAL, ça va me faire gagner des heures !
@+

mood
Publicité
Posté le 18-03-2010 à 14:33:44  profilanswer
 

n°1975034
SuppotDeSa​Tante
Aka dje69r
Posté le 18-03-2010 à 20:36:10  profilanswer
 

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Basique:Sélection Worksheet Excel depuis une macro ?

 

Sujets relatifs
Simulation de Alt tab sous VBA (Excel)[VBA] Excel: propriété ForeColor d'un UserForm
Afficher le nom du fichier ouvert dans une macro sous ExcelGénérer un PDF à partir d'une interface excel en ligne
macro pour excel : application d'une augmentation annuelle en %Formulaire et macro sous Word 2007
Macro Sauvegarde avec mot de passeActualiser un prix automatiquement suivant la selection d'un poids
Plus de sujets relatifs à : Basique:Sélection Worksheet Excel depuis une macro ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR