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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA-E] [Résolu] Copier une valeur provenant d'un autre classeur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA-E] [Résolu] Copier une valeur provenant d'un autre classeur

n°1423061
MadPenguin
Posté le 09-08-2006 à 17:06:27  profilanswer
 

Bonjour,
 
J'ai un petit souci de débutant : je souhaite copier la valeur d'une cellule provenant d'un autre classeur ouvert.
 
Contexte :
   - deux classeurs ouverts ("test.xls" et "test2.xls" ) ;
   - dans chacun des classeurs la feuille "Feuil1" existe ;
 

Code :
  1. Workbooks("test" ).Sheets("Feuil1" ).Range("B1" ) = Workbooks("test2" ).Sheets("Feuil1" ).Range("A1" ).Value


 
Quand j'exécute j'obtiens l'erreur suivante : "Erreur d'exécution '9': L'indice n'appartient pas à la sélection."
 
Et bien sûr je ne vois pas où est l'erreur  :??:  
 
Y'a quelqu'un qui peut m'aider ?
 
Merci d'avance.  :jap:


Message édité par MadPenguin le 10-08-2006 à 13:22:04
mood
Publicité
Posté le 09-08-2006 à 17:06:27  profilanswer
 

n°1423120
galopin01
Posté le 09-08-2006 à 17:47:15  profilanswer
 

Bonjour,
La syntaxe est bonne donc c'est le nom d'un classeur ou d'une feuille qui ne va pas. Présence d'un espace invisible ou faute de frappe...

n°1423146
seniorpapo​u
Posté le 09-08-2006 à 18:29:53  profilanswer
 

Bonsoir,
Remplaces test par test.xls  et test2 par test2.xls
Cordialement

n°1423321
MadPenguin
Posté le 09-08-2006 à 23:37:19  profilanswer
 

seniorpapou a écrit :

Bonsoir,
Remplaces test par test.xls  et test2 par test2.xls
Cordialement


 
Je suis trop nul !!!  :sweat: Je n'avais même pas fait attention à ça.
Merci à vous 2 pour le coup de main et désolé d'avoir posé une question pour rien.
 
Pour info, le problème était plus complexe à la base car je souhaitais récupérer la valeur de plusieurs cellules appartenant à un ou plusieurs classeurs que l'utilisateur sélectionnait.
Comme la sub que j'avais fait plantait à la ligne correspondant à la copie de la valeur, j'avais ouvert 2 fichiers et créé une sub toute simple (voir mon premier post) qui copiait une valeur d'un fichier déjà ouvert.
 
Pour me faire pardonner je copie ma sub finalisée au cas où ça interresse quelqu'un :
 


Sub TRANSFERT()
    ' Déclaration des variables
    Dim ligne As Integer
    Dim i As Integer
     
    ' Initialisation de la variable ligne à 2 (la ligne 1 est la ligne des titres)
    ligne = 2
     
    ' Boucle permettant de sélectionner plusieurs fichiers
    Do
        ' Sélection du classeur source à partir d'une fenêtre
        cheminfichier = Application.GetOpenFilename("Fichiers Excels (*.xls), *.xls" )
         
        ' Si on clique sur Annuler dans la fenêtre, on sort de la boucle
        If cheminfichier = False Then
            Exit Do
        End If
         
        'Ouverture du classeur source
        Workbooks.Open cheminfichier
         
        ' Récupération du nom du classeur + extension
        For i = Len(cheminfichier) To 1 Step -1
            If Mid(cheminfichier, i, 1) = "\" Then Exit For
        Next
        nomfichier = Mid(cheminfichier, i + 1, Len(cheminfichier))
         
        ' Copie des valeurs entre les classeurs
        ThisWorkbook.Sheets("Feuil2" ).Range("A" & ligne) = Workbooks(nomfichier).Sheets("Nombre" ).Range("F3" ).Value
        ThisWorkbook.Sheets("Feuil2" ).Range("B" & ligne) = Workbooks(nomfichier).Sheets("Nombre" ).Range("E6" ).Value
        ThisWorkbook.Sheets("Feuil2" ).Range("C" & ligne) = Workbooks(nomfichier).Sheets("Nombre" ).Range("E7" ).Value
        ThisWorkbook.Sheets("Feuil2" ).Range("D" & ligne) = Workbooks(nomfichier).Sheets("Nombre" ).Range("E8" ).Value
         
        ' Fermeture du classeur source
        Workbooks(nomfichier).Close
         
        ' Incrémentation du numéro de ligne
        ligne = ligne + 1
    Loop
End Sub


 
Vous remarquerez sans doute que je n'ai pas déclaré les variables cheminfichier et nomfichier car j'avais un doute sur leur type ; je sais que ça n'est pas très propre mais au moins ça fonctionne.  :D  
 
A+


Message édité par MadPenguin le 09-08-2006 à 23:38:18

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

  [VBA-E] [Résolu] Copier une valeur provenant d'un autre classeur

 

Sujets relatifs
[Access] Affecter une valeur lors du premier focus sur une caseImporter des données excel sur le web vers un programme VBA
[Résolu] [Algo] Stabilisation et Système du premier ordre[VBA] Compter le nombre de checkboxes cochées
MsgBox[resolu]VBA: Masquer des lignes d'un grand fichier Excel rapidement
[RESOLU AVEC HONTE] Pb avec un upload de fichier un peu étrange :)ajout de valeur
[Résolu] Lire les 10 dernières lignes d'un fichier[ Résolu ] Lancer un fichier BAT depuis Csharp
Plus de sujets relatifs à : [VBA-E] [Résolu] Copier une valeur provenant d'un autre classeur


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