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 :

Faire une recherche dans un répertoire windows.


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Je suis en pleine création d'entreprise et en attendant que la partie paperasse se termine, je me prépare ....
    J'ai en tête de faire fichier clients et cie.

    Voici ce que j'ai pour l'instant:
    - un fichier client, avec les infos et numérotation automatique
    - des fiches produits
    - la facturation, n° client à sélectionner et les infos se remplissent seules
    on choisit le produit et quand on met la quantité le prix s'ajuste (choix entre 3 prix en fonction des quantités), les infos sont prises sur les fiches produits.
    Le N° de facture est automatique, format "aaaammjjN°CLIENT"
    En bas de page un bouton qui, quand on clique dessus, enregistre la facture sous le nom "aaaammjjN°Client" danss un répertoire autre que celui de la facture vierge, en plus il imprime la facture.

    Déja suis bien content, j'ai réussi à faire tout çà en cherchant par ci par la et comme l'ami google me renvoie souvent ici, je viens chercher de l'aide là où je commence à sécher :

    Dans mon fichier client, je voudrai que pour chaque client apparaisse ses factures.
    Je vois çà comme cà : une colonne nommée "historique" avec un menu déroulant pour chaque client. Dans ces menus : les factures bien sur

    Est ce que c'est possible ?

    J'ai pas précisé pour pas aller trop vite, mais peut être que c'est important. Donc après cette recherche, je voudrai qu'en cliquant sur le N°de facture du menu déroulant, je récupère son montant HT.

    Ce qui remplira la colonne "Montant Fact HT"

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    merci pour le coup de pouce

    voici ce que j'ai fait :
    j'ai cree une nouvelle feuille que j'appelle RecapFactures
    avec les liens que tu m'as donne Philippe, j'ai fait une macro qui permet de recuperer la liste de toutes les factures, avec le nom de fichier et le nom de repertoire
    ca me fait :
    col a : nom du fichier avec lien hypertexte N°facture.xlsm
    col b (masquee) nom du repertoire
    col c : j'ai mis le chemin complet (assemblage col b et a)
    col d, e, f ; recuperation des jours, mois, annees (issus du n° de facture)
    col g : assemblage pour avoir la date complete
    col h : le n° client (issu du n° de facture)
    col i : c la que je bloque a nouveau

    je voudrai aller chercher le montant en case G39 sur les factures de la col a, le chemin est en colonne c mais pas en "brut" c une formule concatener

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Citation Envoyé par greg62200 Voir le message
    col i : c la que je bloque a nouveau
    je voudrai aller chercher le montant en case G39 sur les factures de la col a, le chemin est en colonne c mais pas en "brut" c une formule concatener
    Une solution parmi d'autres. Dans la procédure qui te permet d'écrire ces lignes, ouvre le fichier "facture" lit le contenu de la cellule G39 et écrit sa valeur dans la colonne C.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    c'est ce que je dis dans mon dernier post
    le probleme c que je ne sais pas comment faire pour ouvrir mon lien en colonne a

    en fait je me demande si je vais dans le bon sens
    il me semble qu'il serait plus logique d'envoyer les infos dans "recapfactures.xls" quand je clique pour les enregistrer
    un bouton multifonction

    vais voir dans ce sens la parce que l'autre solution me prend trop la tete, je sais pas comment s'appelle ce que je cherche alors imaginez ...

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Si tu montrais le code que tu as utilisé pour alimenter les colonnes en question on pourrait certainement mieux t'aider.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    je mets ma feuille facturation.xlsm en piece jointe, dans un zip il veut pas de mon xlsm

    ce que je veux en + : recuperer le n° de facture et le montant HT (f8 et g39) dans un autre classeur que l'on appellera "RecapFactures.xls" ou autre chose que xls pourvu que ca passe avec excel 2007
    Fichiers attachés Fichiers attachés

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour ma part, j'aimerais voir simplement la partie du code que tu utilises pour mettre à jour la table de données dont tu parles ici
    voici ce que j'ai fait :
    j'ai cree une nouvelle feuille que j'appelle RecapFactures
    avec les liens que tu m'as donne Philippe, j'ai fait une macro qui permet de recuperer la liste de toutes les factures, avec le nom de fichier et le nom de repertoire
    ca me fait :
    col a : nom du fichier avec lien hypertexte N°facture.xlsm
    col b (masquee) nom du repertoire
    col c : j'ai mis le chemin complet (assemblage col b et a)
    col d, e, f ; recuperation des jours, mois, annees (issus du n° de facture)
    col g : assemblage pour avoir la date complete
    col h : le n° client (issu du n° de facture)
    col i : c la que je bloque a nouveau
    je voudrai aller chercher le montant en case G39 sur les factures de la col a, le chemin est en colonne c mais pas en "brut" c une formule concatener
    Pour que tout le monde profite de la discussion, je crois inutile à ce stade de déposer un classeur.
    J'ai bien compris la structure de cette table et tu parles de parcourir un ou plusieurs répertoires. Donc t'indiquer où placer la ligne de code qui doit ouvrir le classeur et aller lire la cellule G39 de celui-ci ne me semble pas insurmontable avec les informations dont on dispose pour l'instant.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    voici le code macro de ma feuille "RecapFactures.xlsm"

    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
    Sub RecupFactures()
        Dim Dossier As String
     
        'Définit le répertoire pour débuter la recherche de fichiers.
        '(Attention à ne pas indiquer un répertoire qu contient trop de sous-dossiers ou de
        'fichiers, sinon le temps de traitement va être très long).
        Dossier = "C:\Users\Win7\Desktop\BSMD\FacturesDevis\ArchivesFactures"
     
        'Appelle la procédure de recherche des fichiers
        ListeFichiers Dossier
     
        'Ajuste la largeur des colonnes A:E en fonction du contenu des cellules.
        Columns("A:E").AutoFit
        MsgBox "Terminé"
    End Sub
     
     
     
    Sub ListeFichiers(Repertoire As String)
        '
        'Nécessite d'activer la référence "Microsoft Scripting RunTime"
            'Dans l'éditeur de macros (Alt+F11):
            'Menu Outils
            'Références
            'Cochez la ligne "Microsoft Scripting RunTime".
            'Cliquez sur le bouton OK pour valider.
     
        Dim Fso As Scripting.FileSystemObject
        Dim SourceFolder As Scripting.Folder
        Dim SubFolder As Scripting.Folder
        Dim FileItem As Scripting.File
        Dim i As Long
     
        Set Fso = CreateObject("Scripting.FileSystemObject")
        Set SourceFolder = Fso.GetFolder(Repertoire)
     
        'Récupère le numéro de la dernière ligne vide dans la colonne A.
        i = Range("A65536").End(xlUp).Row + 1
     
        'Boucle sur tous les fichiers du répertoire
        For Each FileItem In SourceFolder.Files
            'Inscrit le nom du fichier dans la cellule
            Cells(i, 1) = FileItem.Name
             'Ajoute un lien hypertexte vers le fichier
            ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), _
                Address:=FileItem.ParentFolder & "\" & FileItem.Name
              'Nom du répertoire
            Cells(i, 2) = FileItem.ParentFolder
            i = i + 1
        Next FileItem
     
     
        '--- Appel récursif pour lister les fichier dans les sous-répertoires ---.
        For Each SubFolder In SourceFolder.subfolders
            ListeFichiers SubFolder.Path
        Next SubFolder
     
    End Sub
    plus j'y pense et plus je suis persuade que la solution du bouton qui envoie les infos me semble la plus adaptee
    je fais ma facture et en cliquant j'ai fini, pas besoin d'aller ouvrir le fichier pour qu'il se mette a jour, ce serait le bouton a chaque fin de facturation qui mettrait a jour

    voici le code pour mon bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Bouton()
    Dim NOM As String
    lechemin = ActiveWorkbook.Path & "\ArchivesFactures\"
    NOM = Range("f8")
    ThisWorkbook.SaveAs lechemin & NOM & ".xls"
    Selection.PrintOut Copies:=1, Collate:=True
    End Sub
    j'ai regarde et essayer avec des trucs du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    i = Range("A65536").End(xlUp).Row + 1
    Range("g39").Copy Workbooks("ListeFactures.xls"). _ Worksheets("Feuil1").cell(c,i)
    j'ai change le nom du fichier destination pour pas avoir 2 fichiers du meme nom
    et je veux que le contenu de la cellule g39 du classeur ouvert aille dans la colonne c de la feuil1 du classeur "ListeFactures.xls"
    par contre je dois pas mettre tout ca dans l'ordre ou doit y avoir des erreurs, j'arrive pas a le faire fonctionner

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    plus j'y pense et plus je suis persuade que la solution du bouton qui envoie les infos me semble la plus adaptee
    je fais ma facture et en cliquant j'ai fini, pas besoin d'aller ouvrir le fichier pour qu'il se mette a jour, ce serait le bouton a chaque fin de facturation qui mettrait a jour
    Il est évident que si tu fais tes factures avec Excel, c'est plus simple de mettre à jour les éléments principaux de cette facture dans un fichier historique que de créer une procédure qui va lire tous les fichiers factures pour ensuite rapatrier leurs données mais ce n'était pas ta demande initiale.
    Il y a une époque je faisais le même type de travail mais pour reprendre toutes des commandes se trouvant dans des classeurs indépendants mais comme je n'avais pas la main sur ces classeurs je ne pouvais pas faire cette mise à jour directement.

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    j'arrive pas a m'en sortir avec mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Bouton()
    i = Range("A65536").End(xlUp).Row + 1
    Range("g39").Copy Workbooks("ListeFactures.xls"). _ Worksheets("Feuil1").cell(c,i)
    Dim NOM As String
    lechemin = ActiveWorkbook.Path & "\ArchivesFactures\"
    NOM = Range("f8")
    ThisWorkbook.SaveAs lechemin & NOM & ".xls"
    Selection.PrintOut Copies:=1, Collate:=True
    End Sub
    cette ligne pose probleme :s
    Range("g39").Copy Workbooks("ListeFactures.xls"). _ Worksheets("Feuil1").cell(c,i)

  12. #12
    Membre habitué
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 174
    Points : 195
    Points
    195
    Par défaut
    Bonjour,

    Evidemment,il faut une base de données,ainsi tu pourras aussi rentrer les échéance de paiement, les dates de paiement et pouvoir faire les relances éventuelles...

    Pas de "copie" de donnée, mais enregistrement de la donnée directement au bon endroit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbooks("Mon fichier base de données").worksheets("BDD").range("A" & i) = workbooks("Mon modèle de facture").worksheets("modèle").range("G39")
    J'ai mis des noms de fichier / feuille au hasard... mais c'est l'idée..

    A+
    Elise

    La réponse que je t'ai faite correspond à ta demande, mais si tu veux construire un truc qui va bien....

    Tu fais une BDD, tu rentres toutes tes infos dedans, et tu as un onglet modèle facturation qui récupère les infos de la BDD, par formule, ça marche très bien => formules "rechercheH + equiv"

  13. #13
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Comme Lilou51 l'a justement écrit, on peut écrire directement dans la cellule du classeur où se trouve l'historique des factures (à condition qu'il soit ouvert).
    Dans le cas contraire à lire ce tuto Lire et écrire dans les classeurs Excel fermés
    Petite remarque sur ton code.
    Il est extrêmement dangereux d'écrire ou de lire une cellule sans préciser la feuille et le classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    i = Range("A65536").End(xlUp).Row + 1
    Range("g39").Copy Workbooks("ListeFactures.xls"). _ Worksheets("Feuil1").cell(c,i)
    Ceci est préférable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dim i
     With ThisWorkbook.Worksheets("Feuil1")
      i = .Range("A65536").End(xlUp).Row + 1
      .Range("g39").Copy Workbooks("ListeFactures.xls"). _ Worksheets("Feuil1").cell(c,i)
     End With

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Bouton()
     Dim i
     With ThisWorkbook.Worksheets("Facture")
      i = .Range("A65536").End(xlUp).Row + 1
    .Range("g39").Copy Workbooks("ListeFactures.xls").Worksheets("Feuil1").cell(c, i)
     End With
    Dim NOM As String
    lechemin = ActiveWorkbook.Path & "\ArchivesFactures\"
    NOM = Range("f8")
    ThisWorkbook.SaveAs lechemin & NOM & ".xls"
    Selection.PrintOut Copies:=1, Collate:=True
    End Sub
    la ligne
    .Range("g39").Copy Workbooks("ListeFactures.xls").Worksheets("Feuil1").cell(c, i)
    pose toujours problème
    j'ai retire le "_" devant worksheets comme excel l'a demande mais il en veut toujours pas => "erreur 438"

  15. #15
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je suppose que le classeur ListeFactures.xls est bien ouvert.
    Par contre je ne vois nulle part d'assignation de valeur pour la variable C même si normalement le n° d'erreur est 1004 si C est égal à zéro.
    [EDIT]
    Il manque un S à cells
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("g39").Copy Workbooks("ListeFactures.xls").Worksheets("Feuil1").cells(c, i)

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    on se rapproche

    le code fonctionne sans message d'erreur : ca c'est deja bien
    par contre il me copie pas la case g39 mais la formule comprise dans g39 soit "=somme(....)" bien sur ca correspond a rien
    2e probleme, la reponse n'est pas a l'endroit souhaite

    elle doit arriver dans la colonne c et dans la 1ere ligne dispo et elle tombe en c38

    je donne le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Bouton()
     Dim i
     With ThisWorkbook.Worksheets("Facture")
      i = .Range("A65536").End(xlUp).Row + 1
    .Range("g39").Copy Workbooks("ListeFactures.xls").Worksheets("Feuil1").Cells(i,3)
     
    Dim NOM As String
    lechemin = ActiveWorkbook.Path & "\ArchivesFactures\"
    NOM = Range("f8")
    ThisWorkbook.SaveAs lechemin & NOM & ".xls"
    Selection.PrintOut Copies:=1, Collate:=True
     End With
     End Sub
    petite precision : c n'est pas une variable mais la colonne "c" , rectification faites, remplace par 3

  17. #17
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Ce code fonctionne sans message d'erreur : ca c'est deja bien
    par contre il me copie pas la case g39 mais la formule comprise dans g39 soit "=somme(....)" bien sur ca correspond a rien
    2e probleme, la reponse n'est pas a l'endroit souhaite
    Pour le 1er problème
    C'est normal, quand tu fais un Copier/Coller d'une cellule qui contient une formule, tu colles la formule et pas sa valeur.
    Tu dois donc faire un Copier/CollageSpecial-Valeur
    Pour le 2ème problème : Il faut lui donner la bonne adresse.

  18. #18
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    collage special avec
    .Range("g39").Copy Workbooks("ListeFactures.xls").Worksheets("Feuil1").Cells(i, 3)Ça se traduit comment ???

    et la ligne
    i = .Range("A65536").End(xlUp).Row + 1est censée aider a trouver l'adresse, le cells(i,3) aussi mais apparement y a une erreur :s

  19. #19
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Citation Envoyé par greg62200 Voir le message
    collage special avec
    .Range("g39").Copy Workbooks("ListeFactures.xls").Worksheets("Feuil1").Cells(i, 3)
    ca se traduit comment ???
    Si tu utilisais l'enregistreur de macros, tu le trouverais tout seul
    Voici ce que l'enregistreur donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Macro1()
        Range("E2").Select
        Selection.Copy
        Range("A2").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    End Sub
    Après avoir épuré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Macro1()
     With ThisWorkbook.Worksheets("Feuil2")
     .Range("E2").Copy
     .Range("A2").PasteSpecial Paste:=xlPasteValues
     End With
    End Sub
    Il faut bien sûr adapter à ton cas pour ce qui concerne les objets feuilles, classeurs et cellules.
    et la ligne
    i = .Range("A65536").End(xlUp).Row + 1
    est censee aider a trouver l'adresse, le cells(i,3) aussi mais apparement y a une erreur :s
    Oui mais déjà il vaut mieux utiliser object.Range("A" & object.Rows.count) en lieu et place de object.Range("A65536") question compatibilité avec les versions après 2003.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    row = shtTo.Range("A" & shtTo.Rows.Count).End(xlUp).row + 1
    Vérifie la valeur de I
    Il faut vérifier aussi si la variable I est bien la dernière ligne de la feuille de destination et pas celle de la feuille d'où tu copies.

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Bon c'est trop compliqué pour moi je laisse tomber
    A chaque fois que je crois toucher au but je me rends compte que j'en suis bien loin
    Ça m’intéresse mais j'ai pas assez de temps pour ça

    merci quand même

Discussions similaires

  1. COmment faire une recherche dans tous les dossiers
    Par Djohn dans le forum Outlook
    Réponses: 2
    Dernier message: 28/06/2007, 19h27
  2. Réponses: 5
    Dernier message: 03/08/2006, 08h03
  3. Comment faire une recherche dans ACCESS
    Par Bass_Room dans le forum Access
    Réponses: 2
    Dernier message: 02/06/2006, 10h51
  4. Faire une recherche dans un fichier XML
    Par Devilish_Seraph dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 21/01/2006, 13h41
  5. [VB.NET] Faire une recherche dans une treeview
    Par Aspic dans le forum VB.NET
    Réponses: 3
    Dernier message: 15/11/2005, 19h10

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