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 :

Probleme macro excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut Probleme macro excel
    Bonjour à tous,

    Je veux créer un fichier excel capable de rapatrier foule de stats d'un document excel préalablement téléchargé. Je clique donc sur "Nouvelle macro" et c'est parti. Voici mes questions:

    - Pour que les données apparraissent au bon endroit, je sélectionne une cellule, je clique sur "somme" et je vais chercher dans l'autre fichier excel le chiffre à mettre. Est-ce ok où y a t'il une autre solution? Sachant que je ne veux pas ouvrir le second fichier lorsque je lance ma macro.

    - Ma macro ainsi faite, lorsque je la lance, je suis obligé de placer le curseur sur la bonne cellule sinon il y a un décalage dans le rapatriement. Pourquoi? Est-ce un pb durant la création de la macro?

    Ces renseignements m'aideront déjà beaucoup.

    Cordialement

    Bag

  2. #2
    Membre chevronné Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Par défaut
    le plus simple est de nous mettre la macro et on la regarde

  3. #3
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    On se doute bien que tu n'es pas ici pour un problème de tondeuse à gazon
    Ce genre de titre "Probleme macro excel...help me please" est totalement inutile et ne pourra pas servir à l'avenir lorsque quelqu'un fera une recherche pour un problème similaire (si si...il y en a qui font des recherches ).

    Citation Envoyé par bagheria85 Voir le message
    Sachant que je ne veux pas ouvrir le second fichier lorsque je lance ma macro.
    Il est en effet possible de lire dans un classeur fermé mais il est impossible de créer ce genre de macro via l'enregistreur.

    Un peu de lecture... http://silkyroad.developpez.com/VBA/ClasseursFermes/

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut Merci!
    Vraiment merci pour le lien envoyé. Cela m'a énormément aidé. merci encore donc. J'ai cependant un dernier point à résoudre. Et c'est pas coton. Le classeur dans lequel j'ai créé ma macro pour importer des données depuis un autre classeur fermé contient des onglets différents. Sur l'onglet nommé "choix", j'ai créé des boutons de commandes pour chaque mois de l'année. Ainsi la Macro1 correspond aux chiffres qui iront dans janvier. Mais lorsque je clique sur mon bouton de commande pour exécuter la macro, les données se mettent sur cet onglet et non sur l'onglet nécessaire. j'ai du oublier de préciser evrs quel onglet diriger les chiffres. Voici le code actuel. Où dois-je mettre le nom de mon onglet please? (l'onglet s'appelle MARGES EXPLOIT 2010)

    Cordialement


    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Sub extractionValeurCelluleClasseurFerme()
        Dim Source As ADODB.Connection
        Dim Rst As ADODB.Recordset
        Dim ADOCommand As ADODB.Command
        Dim Fichier As String, Cellule As String, Feuille As String
     
        'Adresse de la cellule contenant la donnée à récupérer
        Cellule = "N7:N101"
          'Pour une plage de cellules, utilisez:
          'Cellule = "A4:C10"
     
        Feuille = "Données de la carte$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
        'Chemin complet du classeur fermé
        Fichier = "\\LN012547\WinData$\guillaume\Bureau\Excel\mes.xls"
     
        Set Source = New ADODB.Connection
        Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
     
        Set ADOCommand = New ADODB.Command
        With ADOCommand
            .ActiveConnection = Source
            .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
        End With
     
        Set Rst = New ADODB.Recordset
        Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
     
        Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
     
        Range("B3").CopyFromRecordset Rst
     
        Rst.Close
        Source.Close
        Set Source = Nothing
        Set Rst = Nothing
        Set ADOCommand = Nothing
     
        'Adresse de la cellule contenant la donnée à récupérer
        Cellule = "N7:N101"
          'Pour une plage de cellules, utilisez:
          'Cellule = "A4:C10"
     
        Feuille = "Données de la carte$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
        'Chemin complet du classeur fermé
        Fichier = "\\LN012547\WinData$\guillaume\Bureau\Excel\p30.xls"
     
        Set Source = New ADODB.Connection
        Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
     
        Set ADOCommand = New ADODB.Command
        With ADOCommand
            .ActiveConnection = Source
            .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
        End With
     
        Set Rst = New ADODB.Recordset
        Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
     
        Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
     
        Range("O3").CopyFromRecordset Rst
     
        Rst.Close
        Source.Close
        Set Source = Nothing
        Set Rst = Nothing
        Set ADOCommand = Nothing
    End Sub

  5. #5
    Membre chevronné Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Par défaut
    Je dirait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worksheets("MARGES EXPLOIT 2010").Range("O3").CopyFromRecordset Rst

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut Merci merci merci
    Combien de fois dois-je le dire? Merci à vous de m'avoir répondu si efficacement! Longue vie au site!

    Cordialement

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut Une dernière petite chose
    Comme plusieurs utilisateurs vont utiliser ce fichier excel créé, les classeurs fermés seront téléchargés par eux mêmes et mis sur leur ordi respectif. Or, le chemin d'accès ne sera donc plus le même.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Chemin complet du classeur fermé
    Fichier = "\\LN012547\WinData$\guillaume\Bureau\Excel\mes.xls"
    Aussi, existe t'il un code qui permette de chercher dans le classeur "mes.xls" sans mettre de chemin devant (en imaginant par exemple que le classeur excel avec la macro et le classeur fermé soit dans le même dossier).

    Cordialement

Discussions similaires

  1. [VBA-E]Probleme macro VBA excel 2000 2003
    Par skichatchat dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/04/2007, 21h16
  2. Probleme lancement macro excel 2007
    Par nico63vb dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/03/2007, 13h55
  3. Probleme de conversion entre . et , avec une macro excel
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/01/2007, 22h26
  4. [vba-e] probleme de declenchement de macro excel
    Par clarkk dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/07/2006, 19h29

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