IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Positionnement de classeur.


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bénin

    Informations forums :
    Inscription : Mai 2012
    Messages : 21
    Par défaut Positionnement de classeur.
    Bonjour ,

    Je vais être bref,

    J'ai un programme que j'ai crée dans un classeur 1 . Ensuite j'appel un classeur 2 et je me place dans sa feuille pour copier les données.
    A ce moment la je dois me replacer dans le classeur 1 pour venir coller les données dans sa feuille . Je ne sais pas quelle procédure utilisée pour revenir et/ou se positionner dans le classeur 1 .

    Cordialement,

    Sophie.

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    bonjour,
    si tu sais pas ou te positionner comment peut-on le savoir?

    peux-tu mettre le code que tu as fais stp?
    j'ai pas le temps de tester mais voici le principe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Dim classeur1 As Workbook, classeur2 As Workbook
    Dim chemin As String, fichier As String
     
    'j identifie le classeur1, ici celui d'ou j'ouvre la macro
    Set classeur1 = ThisWorkbook
     
    'je donne le chemin du classeur2
    chemin = "c:\reptest\"
     
    'je donne le nom du classeur2
    fichier = "test.xls"
     
     
    'j ouvre ce classeur
    Workbooks.Open chemin & fichier
     
    'j identifie le classeur ou se trouve les données
    Set classeur2 = Workbooks(fichier)
     
     
    'je copie les données du classeur2 vers classeur1
    classeur2.Sheets("Feuil1").Range("A1:B10").Copy classeur1.Sheets("Feuil1").Range("A1")
     
    'je ferme classeur2
    classeur2.Close
    fait des recherches sur le forum cette question a été traiter de nombreuses fois et il n'y a pas très longtemps

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bénin

    Informations forums :
    Inscription : Mai 2012
    Messages : 21
    Par défaut
    voila :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub test()
    
    
    
    
    Dim Plage As Range, K As Range, Ligne As Long, Col As Integer 'Définition de la plage de cellule
    
    ' j'ouvre mon classeur 2
    Workbooks.Open ("D:\Documents and Settings\zsdesmot\Bureau\Ramasse des vins\Avril 2012.xlsm") 'Ouverture du second classeur
        
        With Sheets("lori") 'Placement dans la feuille des données requises
    
            Set Plage = .Range(.[K2], .Cells(.Rows.Count, 11).End(xlUp)) 'Ouverture de la plage allant de K2 à la dernière cellule de la colonne K de la feuille'
        End With
        
    
       ' test = la feuille de mon classeur 1 ou les données vont être copiées
        
        With Sheets("test") 'Placement dans la feuille du second classeur ou seront copié les données        For Each K In Plage 'Condition : Pour chaque cellule de la colonne K de la feuille lori...
                If K.Value <> "" Then
    
                    Ligne = Application.Match(K.Value, .[B:B], 0) 'Match est l'équivalent de la fonction equiv d'excel '
                Else
                End If
                
                 Col = Application.Match(K.Offset(, -7).Value, .Rows(3), 0) 'On vient chercher 7 colonnes à gauche de la colonne K, la référence transporteur
                 .Cells(Ligne, Col).Value = .Cells(Ligne, Col).Value + K.Offset(, 4).Value 'On colle l'ensemble des données cherchées ( ligne & col )dans la feuille Test
            Next K
        End With
    End Sub

    L'erreur est une erreur d'execution " 9 " l'indice n'appartient pas la séléction ( ligne en jaune ).

    Cordialement,

    Sophie.

  4. #4
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    si j'ai compris la feuille test est dans le classeur1.
    or du fait que tu ouvres le classeur2 il devient le classeur actif d'ou l'erreur puisque dans le classeur2 la feuille test n'existe pas

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bénin

    Informations forums :
    Inscription : Mai 2012
    Messages : 21
    Par défaut
    C'est bon j'ai eu la solution ;

    Il suffisait de placer un " activate " apres le worbook du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("classeur1").Activate

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Se positionner sur un classeur Excel non enregistré ( fichier dqy )
    Par shakapouet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/06/2012, 10h08
  2. Positionnement dans toutes les feuilles d'un classeur Excel
    Par josephhd dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/05/2012, 10h32
  3. LinCVS - Comment positionner CVSROOT ?
    Par sequentaire dans le forum Réseau
    Réponses: 3
    Dernier message: 10/07/2003, 06h53
  4. RichEdit tjs positionner le curseur en bas du texte
    Par microseb dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/05/2003, 17h48
  5. [TSynMemo] Positionnement par ligne et colonne
    Par Mercilius dans le forum Composants VCL
    Réponses: 9
    Dernier message: 16/04/2003, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo