Macro VBA dupliquer colonnes

jungle13 Messages postés 12 Statut Membre -  
via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai réalisé un tableau excel pour convertir des résultats de laboratoire. Néanmoins sur le tableau que j'ai fait on ne peut copier coller qu'un échantillon à la fois (une seule colonne).
ce que j'essaye de faire mais je ne trouve aucune réponse sur les forums, c'est réaliser une macro qui puisse s'adapter à celle que j'ai déjà fait (la macro conversion dans le fichier). je voudrais pouvoir remplir la case "nombre d'échantillons à traiter" et en fonction de ça dupliquer les colonnes de mon tableau en fonction du nombre d'échantillons. par exemple si je mets "3", la colonne "résultats laboratoire" se copie colle en 3 fois et les autres également pour pouvoir avoir à la fin 3 colonnes "report tableau" pour pouvoir avoir directement les résultats des mes 3 échantillons sans faire 3 fois copier coller.
Pouvez-vous m'aider s'il vous plait ?
merci d'avance !!

9 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Difficile de t'aider sans avoir l'exemple de ton fichier avec son tableau !
    Exemple à poster sur mon-partage.fr, faire créer un lien, le copier et revenir le coller ici

    Cdlmnt
    Via
    0
    1. jungle13 Messages postés 12 Statut Membre
       
      Merci pour ta réponse, voici le lien : https://mon-partage.fr/f/whteEGYf/
      0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    J'ai commencé à regarder
    Où veux tu dupliquer x fois ton tableau, à la suite du 1er (à droite) ou en dessous ?
    Pour une application de la macro ce sera plus facile si on copie en dessous les lignes 10 à 31
    Si tu es OK je commence à regarder pour la copie en x exemplaires en dessous et après on verra pour faire effectuer la macro de conversion sur chaque tableau au clic sur un seul bouton
    0
    1. jungle13 Messages postés 12 Statut Membre
       
      Je voudrais dupliquer la colonne C et que les copies s'insèrent entre les colonnes C et D ou B et C n'importe, soit avant soit après. je ne sais pas si c'est possible ?
      merci encore
      je reste à votre disposition pour toute autre question
      0
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Tout est possible ou presque !
    Mais je n'arrive pas à comprendre d'après ton message initial tu parles de dupliquer toutes les colonnes de C à J
    et apparemment tu voudrais que les copies s'intercalent, la nouvelle C s’intercalerait avant la D et deviendrait donc la D, l'ancienne D deviendrait E et sa copie s'intercalerait après elle en F, la F devenant G etc ?
    Si il y a 3 échantillons la 2eme copie de la C s'intercalerait entre D et E, devenant la nouvelle colonne E etc
    Confirme moi que c'est bien cela

    Combien peut il y avoir d'échantillons à traiter au maximum ?

    0
    1. jungle13 Messages postés 12 Statut Membre
       
      oui soit elle s'intercalerait soit on pourrait les mettre à la suite, par exemple la C suivies de ses 2 copies, ensuit la colonne des "2" suivie de ses deux copies, la colonne suivant suivie de ses deux copies et ainsi de suite. il faudrait juste que ça colle avec les formules que j'ai inscrites dans les certaines colonnes.
      je ne sais pas, mais beaucoup, car pendant des campagnes de prélèvements on peut prélever à plein d'endroits différents. il faut qu'il y ait une limite ?
      0
    2. jungle13 Messages postés 12 Statut Membre
       
      j'ai l'impression qu'il y a eu un bug, as-tu eu mon dernier commentaire ?
      0
    3. jungle13 Messages postés 12 Statut Membre
       
      je voulais dire qu'on peut soit les intercaler comme tu dis, soit mettre à la suite les copies de chaque colonne correspondante. par exemple les 2 copies à la suite de la colonne C, puis les 2 copies à la suite de la colonne suivante et ainsi de suite.
      et pour les échantillons il peut y en avoir beaucoup, le mieux ça serait de le faire à l'infini
      0
    4. jungle13 Messages postés 12 Statut Membre
       
      il faut juste que les formules que j'ai mis dans certaines colonnes correspondent bien avec les cellules
      0
  4. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    On va essayer comme cela c'est plus simple que les colonnes de résultats où sont à rentrer les données soient côte à côtes et non dispersées
    Certaines cellules n'ont pas de formules (col E F G) et ne sont pas à remplir par l'utilisateur, donc je pense que c'est toi qui les remplis avant à chaque fois ?

    Par contre ce qui serait plus judicieux c'est que les colonnes reports qui sont à copier et coller dans une autre feuille soient après les colonnes résultats au lieu d'être tout à droite et que les colonnes entre Résultats et Report sur lesquelles l'utilisateur n'a pas à intervenir soient masquées
    Qu'en pense tu ?

    Pour le nombre de prélèvements la seule limite c'est le nombre de colonnes d'une feuille Excel et comme il y en a plus de 16 000 depuis la version 2007 ! La vraie limite c'est le poids du fichier en fait

    Je te fais un retour dès que possible

    0
    1. jungle13 Messages postés 12 Statut Membre
       
      oui en fait elles se remplissent automatiquement une fois que j'ai copié collé les résultats et que j'active ma macro. Par exemple des fois les résultats sont sous la forme 256 <x < 320 et des fois juste < 230 donc je sépare les valeurs maxi et les valeurs mini.
      ah oui si c'est possible ça serait top !
      Merci beaucoup
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Ok je regarde ça ce soir

    0
    1. jungle13 Messages postés 12 Statut Membre
       
      https://mon-partage.fr/f/jgUkPaRI/

      Voici le fichier avec un exemple de résultat, il y a juste à lancer la macro
      0
  7. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re

    Macro duplication fonctionnelle

    Par contre je ne suis pas arrivé à faire fonctionner ta macro conversion ^correctement en même temps
    Je l'ai donc supprimée et remplacée par des formules dans les cellules (du coup ça fait moins de colonnes intermédiaires) et ça fait une manip de moins pour l'utilisateur

    Dans le fichier tu as donc une feuille modele vierge avec les formules et la macro duplication (à concerver toujours intacte)
    1) tu copies fais créer une copie du modèle
    2) la feuille est protégée (mais sans mot de passe), les utilisateurs n'ont accès qu'aux cellules en bleu pour enter des données,
    toi tu déprotèges la feuille, tu rentre le nombre d'échantillons à traiter et tu reprotèges la feuille (sans mot de passe) - si tu veux on pourra en mettre un mais il faudra aussi le mettre dans la macro qui déprotège avant la duplication et en fin de duplication
    3) Tu lances la macro duplication , les colonnes sont dupliquées puis les colonnes intermédiaires masquées et la feuille reprotégée, la feuille est prête pour utilisation

    https://mon-partage.fr/f/gWb50Po7/

    En espérant que ça correspond à tes attentes
    0
    1. jungle13 Messages postés 12 Statut Membre
       
      Bonjour,

      Tout d'abord merci pour ta précieuse aide,
      Mais j'ai mis le nombre d'échantillons mais je n'arrive pas à lancer la macro?
      Quand je vais dans développeur > macro je n'ai aucune macro qui s'affiche ?
      0
  8. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Bizarre ! Je viens de retelecharger le fichier depuis mon partage et j'ai bien la macro !
    La voici :
    Sub duplication()
    Application.ScreenUpdating = False
    ActiveSheet.Unprotect
    nbcol = Range("B2") - 1
    coldep = 3
    colfin = coldep + nbcol
    'colonnes resultats
    x = 1
        For n = coldep To colfin - 1
        x = x + 1
        Range(Cells(10, n), Cells(31, n)).Select
        Selection.Copy
        Cells(10, n + 1).Select
        Selection.Insert Shift:=xlToRight
        Selection.ColumnWidth = 27
         Cells(11, n + 1) = "RESULTATS LABORATOIRE " & x
        Next n
        coldep = colfin + 1
        colfin = coldep + nbcol
        masque1 = coldep
    'colonnes intermediaires
     For w = 1 To 4
            For n = coldep To colfin - 1
            Range(Cells(10, n), Cells(31, n)).Select
            Selection.Copy
            Cells(10, n + 1).Select
            Selection.Insert Shift:=xlToRight
            Next n
        masque2 = colfin
        coldep = colfin + 1
        colfin = coldep + nbcol
    Next w
    'colonnes report
    x = 1
    For n = coldep To colfin - 1
    x = x + 1
            Range(Cells(10, n), Cells(31, n)).Select
            Selection.ColumnWidth = 25
            Selection.Copy
            Cells(10, n + 1).Select
            Selection.Insert Shift:=xlToRight
            Selection.ColumnWidth = 25
            Cells(11, n + 1) = "REPORT TABLEAU " & x
        Next n
        
     'masquage colonnes
    For a = masque1 To masque2
     Columns(a).Select
    Selection.EntireColumn.Hidden = True
    Next a
    ActiveSheet.Protect
    Application.ScreenUpdating = True
    End Sub


    0
    1. jungle13 Messages postés 12 Statut Membre
       
      Bonjour,

      Désolée, pas de connexion internet ce weekend.
      J'ai copié collé le code et c'est bon j'arrive à lancer la macro, c'est exactement ce que je voulais, c'est génial merci beaucoup !
      par contre, j'ai fait un premier essai avec par exemple 3 échantillons, et j'ai ensuite copié collé mes résultats dans les 3 tableaux et j'ai eu mes 3 tableaux de conversion c'est super. par contre quand j'efface "3" et que je tape par exemple 2, et que je relance la macro, j'ai bien mes deux tableaux qui apparaissent mais les tableaux mini et maxi et les autres ne disparaissent plus, est-ce normal ? ou alors pour relancer la macro avec un nombre d'échantillons différent il faut fermer la feuille sans l'enregistrer et la réouvrir ?
      j'en demande peut -être trop mais je ne suis pas très douée sur excel désolée!
      0
  9. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Bien
    Oui la feuille est un modèle avec une colonne pour chaque calcul avec les formules, il faut donc bien une fois la duplication et le copiage des tableaux faits bien fermer le fichier sans l'enregistrer puis le rouvrir pour un nouveau traitement
    0
    1. jungle13 Messages postés 12 Statut Membre
       
      très bien, c'est noté !
      Merci encore
      0
    2. jungle13
       
      Bonjour,

      Je me permets de vous recontacter parce que la dernière fois vous m'aviez vraiment beaucoup aidée. J'ai exactement la même chose à faire sur excel cette fois-ci mais pour des analyses de sols donc il y a plus de paramètres.
      J'aimerais conserver le fonctionnement de la dernière fois où on rentre le nombre d'échantillons qu'on a à traiter et le nombre de colonnes correspondant apparaît pour pouvoir coller nos résultats d'analyse. Mais cette fois-ci il n'y aurait pas la dernière colonne de conversion, ça serait juste programmer une mise en forme conditionnelle par rapport à l'échelle de couleur et aux seuils correspondants.
      Je ne sais pas si cela est très parlant, je vous transmets les fichiers en question.

      L'ancien fichier de conversion que vous m'avez fait : https://mon-partage.fr/f/3bY9cgYN/

      Le fichier à modifier sous le même principe, avec les seuils et les couleurs correspondants pour la mise en forme:

      https://mon-partage.fr/f/9SznJv2Y/

      Bien cordialement
      0
  10. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Pour l'instant tu m'a juste envoyé une table avec les éléments et les seuils mais je ne sais ni comment se présente les résultats d'analyse ni si on doit employer les même formules que la dernière fois etc

    Prépare moi une feuille de résultat bâtie comme le modèle que tu m'as renvoyé avec un exemple de résultats dans la colonne Résultats Laboratoire 1 et les colonnes nécessaires : valeurs mini, maxi ... et les valeurs attendues

    Cdlmnt
    Via
    0