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 :

Windows().Activate ne fonctionne pas [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 23
    Par défaut Windows().Activate ne fonctionne pas
    Bonjour à tous!

    Voilà j'ai un petit problème :
    Je dois créer une Macro qui simplifie le nombre de ligne et le nombre de colonne d'un fichier Excel (Source), dois prendre un 2ème fichier Excel (Mobility1), les lignes que je veux, pour l'intégrer dans mon fichier Source.
    Bon jusque là, j'y arrive a peu près... J'utilise au début de ma Macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
             Sheets("Source").Select
                Sheets("Source").Copy
    Et pof! Il me créer un Classeur1.

    Plus tard dans ma Macro (lorsque j'ai supprimé les lignes qui ne m'intéressent pas et fait tout ce que j'avais à faire), je veux copier les lignes de mon fichier Mobility1 et les coller à la fin des lignes de mon fichier Source. (Suis-je clair?!) J'ai donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          Windows("Mobility1").Activate
            Sheets("UO_Mobility").Copy                    et POF j'ai mon Classeur2 créé!
            Windows("Classeur2").Activate
    Sauf que pour passer de mon fichier Mobility (copie) à mon fichier Source (colle, à la fin des lignes), j'ai "Windows("Mobility1").Activate" qui me lance une erreur :
    Erreur d'éxécution 9 : L'indice n'appartient pas à la sélection !

    Que faire? Y a t-il d'autres moyens pour passer d'un classeur à un autre? Workbooks à préférer?

    Comprenez que je copie mes Sheets pour ne pas modifier (et donc supprimer) mes fichiers d'origine.

    Je tourne sous Excel 2010, mon boss aussi, sur mon pc tout fonctionne bien, sur le sien, bug à cette ligne!

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour,

    Il vaut mieux passer par le workbook que par le window ....

    Exemple de code à adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ThisWorkbook.Worksheets(SrcWsname).Copy  'SrcWsname est le nom de la feuille à copier
     
        Set Ext_Wbkk = ActiveWorkbook   'Workbook destination
     
     
            ' Si besoin, efface les sheets autres du workbook destination, normalement, ne sert à rien
     
    If Ext_Wbkk.Worksheets.Count > 1
       For Each WS In Ext_Wbkk.Worksheets
            If (WS.Name) <> SrcWsname Then Worksheets(WS.Name).Delete
        Next WS
    End If

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 23
    Par défaut
    Bonjour vinc_bilb et merci pour ta réponse rapide!

    Par contre, OULA, je ne comprends rien a ce que tu as écrit, je suis débutant en VBA!

    Je ne peux pas simplement faire :

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

    Merci

    J'aurais besoin d'un peu d'aide car je dois rendre mon projet avant ce soir!

    J'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks.("Mobility1").Select
    Mais cela plante sur mon ordi!

    NEED HELP PLEASE!!!

    Merci d'avance!

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour,

    Vous pourriez envoyer votre code complet, voire le fichier?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 23
    Par défaut
    Bonjour vinc_bilb,

    Malheureusement je ne peux pas envoyer le fichier car il présente les Nom et Prénom de salariés dans l'entreprise où je suis actuellement en stage!

    Mais je peux t'envoyer une partie de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sheets("Source").Select
    Sheets("Source").Copy        'Me copie mon Classeur TUSFR Feuille Source en Classeur1
    [.....]
        If NbLignesFin > 1 Then
        MsgBox ("Vous êtes passé de " & NbLignesOrigine & " à " & NbLignesFin & " lignes dans ce document")
        Else
        MsgBox ("Vous êtes passé de " & NbLignesOrigine & " à " & NbLignesFin & " ligne dans ce document")
        End If
     
        Windows("Mobility1").Activate         'Est censé passer de mon Classeur1 (sur lequel je supprime les lignes) à mon Classeur Mobility1 (que je veux copier)
            Sheets("UO_Mobility").Copy        'Me copie mon Classeur Mobility1 Feuille UO_Mobility en Classeur2
        Windows("Classeur2").Activate        'Est censé passer de mon Mobility1 à mon Classeur2 (Classeur2 = celui que je veux modifier et copier les lignes dans mon Classeur1)
    J'ai toujours l'erreur 9 : L'indice n'appartient pas à la sélection à [Windows("Mobility1").Activate]

    Je n'ai pas compris ta réponse d'hier, j'ai vu que tu utilise un .Delete , mais je ne veux pas supprimer mes feuilles, juste les copier-coller et modifier la feuille collée.

    Merci de te soucier de mon problème.

    Merci d'avance pour ta réponse.

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour,

    Vous pourriez fournir un fichier expurgé, juste avec quelques éléments fictifs.

    Dans quel workbook est votre code? Mobility1?

    Bon, sur la base de ce que je peux faire avec quelques éléments (et nons testé):

    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
     
    Sub Test_Copy
     
    Dim WbkSrc As Workbook, WbkDest As Workbook    'Source et Destination
    Dim WshDest As Worksheet                                  'Destination
     
    Set WbkSrc = ThisWorkbook                                 'ou Workbooks("TUSFR")
     
    WbkSrc.Worksheets("Source").Copy                        'Copie mon Classeur TUSFR Feuille Source dans un nouveau classeur
     
    Set WbkDest  = ActiveWorkbook                           'Workbook destination
    Set WshDest = ActiveWorksheet
     
    Debug.Print  WbkDest.Name, WshDest.Name
     
    'Si l'on veut copier une autre worksheet du classeur source vers le dest, après la feuille "source"
    WbkSrc.Worksheets("UO_Mobility").Copy After:=WshDest 
     
    End Sub

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

Discussions similaires

  1. window.location ne fonctionne pas sous explorer 6
    Par karimphp dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/10/2007, 16h35
  2. [IE]window.onload ne fonctionne pas
    Par banzzai dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 18/05/2006, 11h24
  3. [CSS] a:active ne fonctionne pas toujours ?
    Par KpTn dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 10/05/2006, 17h25
  4. window.open : "fullscreen" fonctionne pas sous fir
    Par golgauth dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/11/2005, 06h02
  5. window.resizeTo ne fonctionne pas avec firefox?
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/06/2005, 15h07

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