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 :

Remplacer la première ligne de mon fichier A vers par la 1 ère ligne fichier B


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut Remplacer la première ligne de mon fichier A vers par la 1 ère ligne fichier B
    Bonjour,

    Voici mon point de bloquage, j'ai un fichier excel A ou je dois remplcer la ligne 1 à chaque fois : soit ligne 1 avec 36 champs de A1 à AJ 1 , je souhaite la remplacer par la ligne 1 A1 à AJ 1 du fichier B. Je recherche une macro qui pourrais faire cette manip

    retrouver le chemin du fichier B sans l'ouvrir et remplacer la ligne 1 A1 à AJ 1 du fichier A. Par avance merci car la je bloque j'ai essayé avec plusieurs méthode mais pas très pratique.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Re,

    Tu trouveras en pièce jointe, un exemple qui va te permettre de résoudre ton problème.

    Dans le fichier classeurB.xls se trouve dans la première ligne des valeurs (11 de la colonne A à J)

    Dans le fichier classeurA.xls se trouve une macro qui va récupéré les valeurs du classeurB.xls et les insérer dans la première ligne.

    le code de la macro est simple :

    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 Remplacer()
     
    Dim exc As New Excel.Application
    exc.Workbooks.Open ("c:/test/ClasseurB.xls")
     
    Dim col As Integer
    col = 1
    Do While (col < 11)
        Cells(1, col).Value = exc.Cells(1, col).Value
        col = col + 1
    Loop
     
    exc.Workbooks.Close
    exc.Quit
    Set exc = Nothing
     
    MsgBox "fini"
     
    End Sub
    En espérant avoir pu t'aider. Bonne soirée.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    merci c'est tout à fait cela ! mais par contre deux questions :

    1-/ comment la généraliser cette macro à tout mes fichier excel car lorsque j 'ouvre un autre fichier pour appeler cette macro je ne la trouve pas ?

    2-/ Est il possible de de commander cette macro depuis access si oui comment ?

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonsoir Debutant10, macrofox, le forum

    Pour ne pas appliquer une autre instance d'Excel et sans boucle (en tenant à adresser convenablement les plages Classeur.Feuille.Plage).

    Le ClasseurB est bien ouvert et fermé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Remplacer()
    Dim Exc As worbook
     
    Application.ScreenUpdating = False
    Set Exc = Workbooks.Open("C:/test/ClasseurB.xls")
    ThisWorkbook.Worksheets(1).Range("A1:AJ1").Value = Exc.Worksheets(1).Range("A1:AJ1").Value
    Exc.Close False
    Set Exc = Nothing
    MsgBox "fini"
    End Sub

    Sinon, une alternative sans ouvrir le classeurB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Remplacer()
    Dim Chemin As String, Fichier As String
     
    Chemin = "C:/test"
    Fichier = "ClasseurB.xls"
    With ThisWorkbook.Worksheets(1).Range("A1:AJ1")
        .Formula = "='" & Chemin & "\[" & Fichier & "]Feuil1'!A1"
        .Value = .Value
    End With
    End Sub

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    est il possible de la faire fonctionner depuis un module access ?

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Tu trouveras un bon article te permettant de manipuler des macros par des macros

    http://silkyroad.developpez.com/VBA/VisualBasicEditor/

    PS : j'aime bien ta deuxième méthode mercatog.

Discussions similaires

  1. Récupérer les X dernières lignes de mon fichier txt
    Par coincoin22 dans le forum Windows
    Réponses: 0
    Dernier message: 08/08/2007, 14h39
  2. Réponses: 34
    Dernier message: 08/03/2007, 14h51
  3. Réponses: 22
    Dernier message: 10/02/2007, 12h02
  4. Réponses: 9
    Dernier message: 22/05/2006, 12h21
  5. Saut de ligne dans mon fichier?
    Par cchampion2fr dans le forum Access
    Réponses: 1
    Dernier message: 14/09/2005, 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