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 :

VBA récupérer des données dans différentes cellules sur fichier A pour coller sur fichier B


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Gestionnaires Administratifs
    Inscrit en
    Mars 2024
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Gestionnaires Administratifs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2024
    Messages : 20
    Par défaut VBA récupérer des données dans différentes cellules sur fichier A pour coller sur fichier B
    Bonjour,

    Je suis novice sur la programmation de VBA.

    J'ai créer ce programme avec l'aide de Youtube et je comprends pas pourquoi il bloque au niveau du texte en rouge.

    Pouvez-vous m'aider svp ?

    Je dois générer ce fichier souvent pour l'exporter vers mon fichier de travail

    Merci par avance pour votre aide



    Sub copier_coller_celluleA1_fichier2feuil1()

    Dim wk_fichier As Workbook
    Dim ws_fichier1feuil1 As Worksheet

    Dim wk_fichier2 As Workbook
    Dim ws_fichier2feuil1 As Worksheet

    Dim der_ligne_1 As Long
    Dim der_ligne_2 As Long

    'définir les variables fichiers et onglets
    Set wk_fichier = ActiveWorkbook
    Set ws_fichier1feuil1 = wk_fichier.Worksheets(1)

    Set wk_fichier2 = Application.Workbooks.Open("C:\Users\Jam\Desktop\Tableau JAM macro\EXTRACTION declaration-2023-04-20_11-58.xlsx")
    Set ws_fichier2feuil1 = wk_fichier2.Worksheets(1)


    'copier coller une plage de cellule

    ws_fichier1feuil1.Range(ws_feuil1.Cells(2, 1), ws_feuil1.Cells(der_ligne_1, 2)).Copy ws_fichier2feuil1.Cells(der_ligne_2 + 1, 1)

    'enregistrer et fermer fichier 2
    wk_fichier2.Close (True)


    End Sub

  2. #2
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 022
    Par défaut
    Citation Envoyé par Jam97 Voir le message
    je comprends pas pourquoi il bloque au niveau du texte en rouge.
    Bonjour,
    Peut-être parce que "ws_feuil1" n'existe pas, c'est "ws_fichier1feuil1" qu'il faudrait utiliser.
    Et que "der_ligne_1" et "der_ligne_2" sont à zéro car non renseignées.
    Et peut-être d'autres choses que je n'ai pas vu.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 508
    Par défaut
    Salut,

    Note:
    Renomme tes variables, en utilisant des noms plus lisibles et plus parlant.
    Ca évitera ce genre d'erreur à l'avenir.

    De plus, compile ton code,
    le compilateur est ton ami et sera le premier à te signaler ces anomalies.

  4. #4
    Membre averti
    Femme Profil pro
    Gestionnaires Administratifs
    Inscrit en
    Mars 2024
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Gestionnaires Administratifs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2024
    Messages : 20
    Par défaut
    Merci pour vos réponses j'ai trouvé mon erreur. (Laurent_ott et deedolith)

    'identifier dernière ligne de la feuil1
    der_ligne_1 = ws_fichier2feuil1.Cells(Rows.Count, 1).End(xlUp).Row

    'copier coller une plage de cellule

    ws_fichier2feuil1.Range(ws_fichier2feuil1.Cells(2, 1), ws_fichier2feuil1.Cells(der_ligne_1, 1)).Copy ws_fichier1feuil1.Cells(der_ligne_2 + 2, 2)


    J'avais oublié d'identifier ma dernière ligne et Laurent_ott avait raison, je me suis trompé quand j'ai nommé mes fichiers.

    J'ai une deuxième soucis à régler.

    Je voudrais coller seulement les valeurs. Je suis bloqué pour utiliser la fonction PasteSpecial

    Avez-vous une idée svp ?

  5. #5
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, voici la syntaxe pour coller uniquement les valeurs: ws_fichier1feuil1.Cells(der_ligne_2 + 2, 2).PasteSpecial Paste:=xlPasteValues

  6. #6
    Membre averti
    Femme Profil pro
    Gestionnaires Administratifs
    Inscrit en
    Mars 2024
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Gestionnaires Administratifs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2024
    Messages : 20
    Par défaut
    Citation Envoyé par Franc Voir le message
    Bonjour, voici la syntaxe pour coller uniquement les valeurs: ws_fichier1feuil1.Cells(der_ligne_2 + 2, 2).PasteSpecial Paste:=xlPasteValues
    Bonjour,

    Merci pour votre retour mais le système m'indique "Erreur de compilation : Attendu : fin d'instruction "

    Avez-vous une idée pour résoudre cette erreur svp ?

Discussions similaires

  1. [XL-2016] Insérer des donnés dans une cellule précises depuis un formulaire
    Par nico270599 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2018, 21h37
  2. Réponses: 3
    Dernier message: 20/01/2014, 09h28
  3. Suppression des liens dans 38 cellules sur 36 colonnes
    Par La Zélie dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 25/05/2008, 01h20
  4. VBA: Transferer des commentaires dans des cellulles
    Par Monteninho dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 21/08/2007, 09h31

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