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 :

Recopie conditionnelle de cellules


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Octobre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Recopie conditionnelle de cellules
    Bonjour
    J'ai un fichier Excel structuré ainsi:
    Nom : Capture.JPG
Affichages : 362
Taille : 111,9 Ko
    et je voudrais automatiquement le redistribuer ainsi:
    Nom : Capture1.JPG
Affichages : 325
Taille : 137,4 Ko

    Comme j'ai plus de 13000 lignes à traiter je me demandais si il était possible de le faire automatiquement plutôt que de traiter manuellement avec des copier/coller avec remise en forme.
    merci pour votre aide
    bonne soirée

  2. #2
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Bonjour,
    Comme j'ai plus de 13000 lignes à traiter je me demandais si il était possible de le faire automatiquement plutôt que de traiter manuellement avec des copier/coller avec remise en forme.
    Réponse à votre question: C'est possible.

    J'ai un fichier Excel structuré ainsi:
    et je voudrais automatiquement le redistribuer ainsi:
    merci pour votre aide
    Au vu de ce que vous nous présentez, c'est mission impossible!!!
    Mettez donc de l'ordre dans votre base de données avant toute choses. Entrez vous les données à la main ou viennent-elles automatiquement de quelque chose???
    Vous ne présentez que des bribes de données éparses et sans suite logique. Vous avez des lignes qui appartiennent à une même facture, mais il n'y a pas de colonne dans laquelle apparait le numéro de facture. Comment le programme peut-il repérer les lignes qui correspondent à la dite facture ???
    Pardonnez moi cette franchise, mais si vous voulez que des gens vous aident, il faut au moins leur permettre de le faire
    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Octobre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bonjour
    En fait en essayant d'être plus clair l'extraction est faite à l'aide de l'outil de Ciel Gestion commerciale qui exporte sous Excel les factures selon le modèle initial donné soit:
    Détail lignes de facture en premier, puis une ligne avec le numero de facture et pour finir la ligne avec le code du client.
    N'ayant ni la base originale ni le logiciel je ne sais pas si l'extraction peut se faire avec un autre paramétrage.
    Donc en effet en dehors de l'image du fichier que j'ai donné et de la disposition que j'aimerai obtenir je n'ai pas beaucoup d'information supplémentaire.

    J'ai imaginé de lire ligne à ligne la table afin de déterminer le mot Facture et récuperer la cellule et celle immédiatement suivante qui de par la structure correspond dans tous les cas au code client et ainsi de suite jusqu'à la fin.
    J'espere avoir été plus clair
    merci

  4. #4
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Re,
    Donc, si je comprend bien, votre premier document joint , c'est l'export de "Ciel" sous forme Excel sous la forme ou vous le recevez?
    A quoi peut servir, l'addition des unités? a quoi sert d'additionner 6 produits divers avec 4 heures de MO, pour dire qu'il y a 10 unités ??
    Quid des prix???
    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Octobre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Re bonjour
    Pour moi l'analyse qui consisterait à additionner des poires et des carottes n'est pas ma priorité car une fois la table mise en forme je pourrai en TCD et tris m'affranchir de ces parasitages.
    Tu as bien compris le fichier est extrait par Ciel directement ainsi sous Excel d'où la problèmatique et en effet le problème de quantités et prix qui ne correspondent à rien.
    Merci

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Il suffit d'insérer deux colonnes A et B dans ta feuille.
    Tu crées deux variables "Fact" et "Nom" de type String.
    Tu fais une boucle (For To, par exemple) allant de la DERNIERE ligne à la PREMIERE (Step -1).
    Lorsque tu rencontres une ligne dans les 7 premiers caractères (fonction Left) sont égaux à "Facture", tu places le contenu dans la variable Fact et le contenu de la cellule du dessous dans la variable Nom.
    A chaque ligne, tu mets le contenu de ces deux variables dans les colonnes A et B.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Octobre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Merci Menhir pour la réponse mais n'étant pas spécialiste du VBA as tu la possibilité de me mettre quelques lignes de dev je les adapterai en fonction de mon besoin?
    merci encore de l'aide
    Bonne journée

  8. #8
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Re, Voyons voir si j'ai bien compris: la colonne "unité" et la colonne "prix", ne vous servent en fait à rien?.
    Vous voudriez seulement conserver la première colonne en la disposant d'une manière différente?
    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  9. #9
    Membre à l'essai
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Octobre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Re
    En fait ces colonnes en effet ne me servent à rien pour débuter.
    J'ai besoin comme décris par Menhir d'avoir deux colonnes supplémentaires afin de pouvoir insérer automatiquement les informations reprises sur les cellules avec les références facture et les cellules avec le nom des clients.
    Sachant que comme dit précédemment la structure de la table est toujours identique:
    - lignes fond blanc qui correspondent aux articles de la facture
    -suivi d'une ligne jaune avec Facture et numéro
    -suivi d'une ligne jaune à nouveau avec le nom du client

    Le schéma se répétant jusqu'à la fin du fichier.

    Merci

  10. #10
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Re,
    Je vous ai fait ce petit code. testez le

    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
    Sub Test()
    Dim NomCli As String
    Dim Fact As String
    Application.ScreenUpdating = False
    Range("C" & Range("C995536").End(xlUp)(1).Row).Select
    Do While Left(ActiveCell.Offset(-1, 0).Value, 7) = "Facture"
    NomCli = ActiveCell.Value
    Fact = ActiveCell.Offset(-1, 0).Value
                    ActiveCell.Offset(-2, 0).Select
                    ActiveCell.Offset(0, -1).Value = NomCli
                    ActiveCell.Offset(0, -2).Value = Fact
                    If ActiveCell.Row = 2 Then
                    ActiveCell.Offset(-1, 0).Select
                    ActiveCell.Offset(0, -1).Value = NomCli
                    ActiveCell.Offset(0, -2).Value = Fact
                    Application.ScreenUpdating = True
                    End
                    End If
     
                Do While Left(ActiveCell.Offset(-2, 0).Value, 7) <> "Facture"
                    ActiveCell.Offset(-1, 0).Select
                    ActiveCell.Offset(0, -1).Value = NomCli
                    ActiveCell.Offset(0, -2).Value = Fact
                Loop
        ActiveCell.Offset(-1, 0).Select
    Loop
    ActiveCell.Offset(0, -1).Value = NomCli
    ActiveCell.Offset(0, -2).Value = Fact
    Application.ScreenUpdating = True
    End Sub
    Techniquement, c'est minable, mais ça marche, un peu long, mais "a cheval donné, on regarde pas les dents!"
    Il faut vous mettre sur la page en question et insérer deux colonnes afin que les deux colonnes A et B soient vierges. ensuite déclenchez la macro test, normalement chez moi, ca marche. par contre , il vous faudra peut être revoir les formats de cellules .
    ATTENTION faites un essai sur une sauvegarde(prudence)
    Cordialement

    Rajout: Attention avec 12000,00 lignes, ça peut être long, de toutes les manières ça sera une unique fois
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  11. #11
    Membre à l'essai
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Octobre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup à tous
    la solution me convient et fonctionne parfaitement
    a bientôt

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

Discussions similaires

  1. [XL-2003] Somme conditionnelle avec cellule à evaluer sur la meme ligne
    Par alban.pinel dans le forum Excel
    Réponses: 3
    Dernier message: 22/04/2009, 17h51
  2. Macro et recopie d'une cellule
    Par Dalmito64 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/11/2007, 15h52
  3. Recopie conditionnelle d'un tableau vers un autre fichier Excel
    Par Belegeorn dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/07/2007, 14h29
  4. [VBA-E]Insertion ligne + recopie formules certaines cellules
    Par Kaiba dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/05/2007, 15h25
  5. recopie conditionnel par fonction VBA sous Excel
    Par LinusVince dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/02/2006, 18h33

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