Copier des données dans un tableau

Résolu
ibll1 -  
Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour et merci à qui voudra me venir en aide !
voilà le problème :
je crée des menus déroulants afin de chercher une données (12 menus) et je souhaiterais créer une macro ou une astuce pour que une fois toutes les données sélectionnées, elles se copient dans des colonnes distinctes dans une autre feuille-bilan.
ex données menu 1 dans colonne 1 de la feuille bilan
données menu 2 dans colonne 2 de la feuille bilan

j'espère être clair dans dans mon explication.
si quelqu'un peut m'aider j'aurais une autre question qui viendra ensuite !

merci d'avance
Configuration: Windows Vista
Firefox 3.5.7

13 réponses

  1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Eh bien j'ai une première question, quelle est la prochaine question ?
    0
    1. Utilisateur anonyme
       
      Bonjour,

      Excellent !
      Jean-Pierre sort son joker ! :-))
      0
    2. ibll1
       
      Bonjour, je vois que j'ai affaire à des personnes qui ont de l'humour! soit !
      la seconde question portera sur le fait de copier toutes ses données collectées toutes les deux lignes.
      pour être plus clair :
      par exemple, j'ai les données
      nom, prénom, age, adresse ....sélectionnée pour deux personnes
      je voudrais les copier toutes dans la feuille bilan
      remettre à 0 la feuille données
      recommencer avec 2 autres personnes
      copier de nouveau les données dans le feuille bilan mais 2 lignes en dessous

      etc.......
      cela autant de fois que nécessaire

      voilà ! j'espère être clair.............et il y aura peut-être d'autres questions après :)
      0
  2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Est-ce que cet exemple vous convient pour la partie 2 : https://www.cjoint.com/?bmrJ3Zqpi0

    Note: pour la question 1, comment se présente la feuille avec les divers menus déroulants et où se trouvent les données qui alimentes les menus?

    0
    1. ibll1
       
      Bonjour et merci de la réponse

      j'ai essayer de joindre un exemple et j'espère que cela va fonctionné.
      je souhaiterais donc copier les données sur les 2 lignes jaunes dans une fuille bilan
      puis remettre à 0 les données de la feuille données pour rentrer de nouvelles infos
      copier de nouveau, etc......;

      merci encore

      https://www.cjoint.com/?bmtp5OG8fz
      0
  3. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Merci pour les informations.
    Avant de poursuivre il me serait agréable de savoir si mon exemple résout la question 2 ?
    J'attends.
    0
  4. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    A défaut de votre réponse sur mon premier exemple voici ma proposition : https://www.cjoint.com/?bmwls8ABUn
    0
    1. ibll1
       
      Bonjour,
      et merci infiniment pour la qualité de vos réponses !
      en fait cela semble parfaitement correspondre à ce que je voulais
      avec en plus une remise à 0 directe............;super génial !

      je vais devoir maintenant l'appliquer à mon application-pilote et voir si je m'en sors.
      je vous tiens au courant ..............si d'aventure d'autres problèmes venaient à surgir.

      merci encore
      je vous tiens au courant
      bonne journée
      0
    2. ibll1
       
      RE bonjour,

      vous serait-il possible de me détailler plus précisemment le code utilisé.
      je ne saisis pas toutes les infos à chaque ligne d'autant que je vais devoir l'adapter à mon application maître.

      je sais que c'est du travail mais sinon je vais surement "galérer".

      merci beaucoup
      I.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Je veux bien vous détailler la procédure mais dans un premier temps je vous propose de faire une copie d’écran de vos 2 feuilles à mettre sur https://www.cjoint.com/ , se qui me permettra d’orienté les explications dans le bon sens.
    Merci de votre réponse.
    0
  7. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    La procédure commentée, j'espère que se sont les rames pour la galère ... :
    Sub CopierSurAutreFeuille_LD()
    Dim li As Long, nbli As Long, lideb As Long
    lideb = 6 'Numéro de la premiére ligne des données (liste déroulante)
    nbli = WorksheetFunction.CountA(Range("A" & lideb & ":A100")) 'Calculer le nombre de ligne à copier
    If nbli = 0 Then Exit Sub 'Sortir de la procédure si le nombre de ligne est égal à zézo
    Range("A" & lideb & ":F" & lideb + nbli - 1).Copy ' Copier la plage de données
    Application.ScreenUpdating = False
    With Sheets("bilan") 'Appliquer une série d'instructions à l'objet indiqué (feuille [bilan])
    li = .Range("a5000").End(xlUp).Offset(1, 0).Row ' Numéro de la première ligne vide
        .Range("A" & li).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False ' coller que les valeurs de la plage copier.
    End With
    Application.ScreenUpdating = True
    Range("A" & lideb & ":F" & lideb + nbli - 1).ClearContents ' Réinitialiser la plage de données sur vide
    MsgBox ("La/les " & (nbli) & " ligne/s est/sont copiée/s sur la feuille [Lignecoller]") ' petit message de confirmation du traitement
    End Sub
    0
    1. ibll1
       
      Bonjour,

      je vous envoie la copie d'écran de mon travail
      en effet vous pourriez peut-être me guider !
      merci en tout cas pour les rames..........mais je galère toujours un peu

      tout d'abord, si je comprends bien je dois dans la feuille "mes listes" créer des listes en suivant vos instructions : définir un nom.
      Ensuite à quoi correspondent les variables déclarées : li, nbli, livide

      a bientôt surement et merci encore du temps que vous consacrer à m'aider
      0
  8. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    concernant :
    je vous envoie la copie d'écran de mon travail c'est introuvable !

    tout d'abord, si je comprends bien je dois dans la feuille "mes listes" créer des listes en suivant vos instructions : définir un nom. Oui si vous adoptez le principe de centraliser les listes sur une feuille uniquement dans se but.

    Ensuite à quoi correspondent les variables déclarées : li, nbli, livide Eh bien se sont des variables : voir l'explication à droite de la ligne de code.
    0
    1. ibll1
       
      BONJOUr
      pardon pour le lien, j'espère que celui ci va convenir !
      l' adaptation du code nécessite quelques ajustements..........

      merci encore de votre aide

      Le lien a été créé: https://www.cjoint.com/?bovsBwQvn0
      0
  9. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonsoir,
    Alors c'est super, merci pour le lien.
    Par contre au vu de la disposition de vos données sur votre feuille [données] il faut modifier ma procédure dans se sens.
    Merci de remplacer par cette nouvelle procédure; directement dans le document [Maître] :
    Sub CopierSurAutreFeuille_LD()
    Dim li As Long, nbli As Long, lij1 As Long, lij2 As Long
    lij1 = 11 'ligne des données joueur 1
    lij2 = 17 'ligne des données joueur 2
    
    If Cells(lij1, 2) = "" Or Cells(lij2, 2) = "" Then
        MsgBox ("Le nom des 2 joueurs doit être présent" & Chr(13) & "Merci de corriger !")
        Exit Sub 
    End If
    Application.ScreenUpdating = False
    With Sheets("feuilbilan")
        li = .Range("a5000").End(xlUp).Offset(1, 0).Row
        Range("B" & lij1 & ":O" & lij1).Copy 
        .Range("A" & li).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False 
            Range("B" & lij2 & ":O" & lij2).Copy 
            .Range("A" & li + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
    End With
    Range("B" & lij1 & ":O" & lij1).ClearContents
    Range("B" & lij2 & ":O" & lij2).ClearContents
    MsgBox ("Les 2 lignes sont copiées sur la feuille [FEUILBILAN]")
    Application.ScreenUpdating = True
    End Sub
    --

    Salutations.
    Jean-Pierre
    0
    1. ibll1
       
      OUPS !!

      petits problèmes ENCORE !

      tout d'abord les cellules où il y a GO ne doivent pas être copiées : ce sont des boutons qui incrémentent de 1 une case située à l'extérieure de l'écran !
      % EFF est également une case qui permet de calculer le % compte tenu des 2 données précédentes.

      Pts EFF et Pts MAtch font référence à une formule de rechercherv dans un tableau et si on RAZ ses 2 données............les formules disparaissent également ?

      en d'autres termes les données : ATT bonnes, fautes, score ne doivent pas être copiées.

      pour le reste cela va me rendre service et bravo pour vos compétences informatiques.

      I.
      0
  10. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Comme vous avez parlez de copier 2 lignes vers une autre feuille sans plus de précision, on copie les valeurs de ses lignes, sous–entendu que les formules ont remplies leurs fonctions et ne sont plus nécessaires.
    Désolé, je ne pouvais pas prévoir les détails que vous exposez.
    0
    1. ibll1
       
      Bonjour,

      si je peux me permettre, pourriez-vous me guider pour adapter le code avec les nouvelles données que je vous ai transmises.
      si cela vous gêne de continuer à m'aider je le comprendrais fort bien.
      j'ai l'impression de prendre de votre temps.............mais je suis loin de pouvoir être autonome.
      si vous voulez la copie écran de ma feuille bilan, je peux vous la transmettre

      cordialement
      0
  11. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Merci pour le message.

    Aucun problème pour vous aider, mentionné exactement les cellules que vous voulez sur la feuille [feuilbilan] en prenant comme base la copie d’écran que vous avez mise à disposition (exemple B11, C11 ,….B17, C17 …etc.)

    On copie les valeurs et non les formules Oui ou Non ?

    Merci de mettre la copie écran de ma feuille bilan.
    0
    1. ibll1
       
      Bonjour et merci de bien vouloir continuer le "tutorat"!
      pardon de n'avoir pas tout préciser...............quelques moments d'absences !!!!!!
      voiçi la copie d'écran de la feuille bilan pour vous préciser les données à copier

      http://cjoint.com/data/bqkKoFhRiN_copie_feuilbilan.jpg

      en ce qui concerne la feuille de données, lorsqu'il y a RAZ, il ne faut pas effacer les formules dans les cellules :
      en F11 et F17
      en G11 et G17
      en J11 et J17
      en O11 et O17

      par contre les boutons GO sont relier à des cellules qui incrémentent : elles doivent être remise à 0 pour chaque nouveau match : AM11 et AN11 + AM13 et AN13

      je pense que c'est tout pour le moment !
      en tout cas c'est déjà SUPER GENIAL TOUT ce que vous me donner MERCI
      I.
      0
  12. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Directement dans votre classeur [EVA TT TERM] remplacer l’ancienne procédure cette nouvelle version:
    Sub CopierSurAutreFeuille_04()
    Dim li As Long, lij1 As Long, lij2 As Long, libi As Long
    lij1 = 11 'ligne des données joueur 1
    lij2 = 17 'ligne des données joueur 2
    libi = 6 ' Première ligne après titre de colonne
    If Cells(lij1, 2) = "" Or Cells(lij2, 2) = "" Then
        MsgBox ("Le nom des 2 joueurs doit être présent" & Chr(13) & "Merci de corriger !")
        Exit Sub 'Sortir de la procédure
    End If
    Application.ScreenUpdating = False
    With Sheets("bilan") 'Appliquer une série d'instructions à l'objet indiqué
        li = .Range("a5000").End(xlUp).Offset(1, 0).Row ' Numéro de la première ligne vide
        Range("B11:C11,F11:G11,K11:O11").Copy ' Copier la plage de données
        .Range("A" & li).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False ' coller que les valeurs de la plage copier
            Range("B17:C17,F17:G17,K17:O17").Copy ' Copier la plage de données
            .Range("A" & li + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False ' coller que les valeurs de la plage copier
    End With
    Range("B11:C11,K11:N11,B17:C17,K17:N17").ClearContents ' Réinitialiser la plage de données sur vide
    Range("AM11:AN11,AM13:AN13") = 0
    MsgBox ("Les 2 lignes sont copiées sur la feuille [FEUILBILAN]") ' petit message de confirmation du traitement
    Application.ScreenUpdating = True
    End Sub
    0
    1. ibll1
       
      Bonjour,

      il y a un débogage à la ligne
      With Sheets("bilan") 'Appliquer une série d'instructions à l'objet indiqué
      de fait la macro ne fonctionne pas

      pardon de "revenir" à la charge!!!!!!!!!!!

      bon week end tout de même
      0
      1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478 > ibll1
         
        Bonjour,
        Vous corriger la ligne le code :
        With Sheets("bilan") en With Sheets("feuilbilan")
        Le nom de votre feuille m'avait échapé, désolé.
        Merci de me dire si c'est bon !
        0
    2. ibll1
       
      Bonjour,

      autre petite question:
      vous m'avez donné des consignes pour créer les listes dans "mes listes" en me disant de définir un nom.
      je l'ai fait !
      mais vous faites référence à des formules excel que je ne sais pas où placer.
      en fait je ne comprends pas la manière de faire fonctionner cette "astuce" qui néanmoins est très interressante;
      pourriez-vous m'en dire un peu plus, s'il vous plait.

      cordialement
      I.
      0
    3. ibll1
       
      bonjour,

      je reviens parce que en ce qui concerne définir nom, j'ai compris l'astuce mais comme j'ai utiliser la validation des données pour faire mes menus déroulants, je ne peux pas faire référence à des données d'une autre feuille que la feuille active.
      ainsi, si je dispose mes listes dans la feuille "mes listes", ça ne fonctionne pas...............or l'exemple que vous m'avez envoyé fonctionne.
      qu'est-ce que je n'ai pas encore compris?

      décidemment mes lacunes sont nombreuses..............;et sans doute ce n'est que la face cachée de l'iceberg :)
      0
  13. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Concerne: postes 23/24
    Eh bien pour les listes on les nomme et de cette manière on peut utiliser le nom lors de la validation de liste dans n’importe quelle feuille du classeur.
    http://www.cijoint.fr/cjlink.php?file=cj201001/cijg99jbAZ.xls
    Je vous ai mis un petit complément d’information voir feuilles [données] et [MesListes] et surtout lisez bien l'encadré jaune de la feuille [MesListes] pour comprendre le pourquoi de cette manière de faire (poste 23).
    0
    1. ibll1
       
      Bonjour et merci encore,

      tout semble aller parfaitement bien et je vous en remercie.
      si je peux me permettre je travaille actuellement sur une autre application pour les sports collectifs.
      si vous me permettez je voudrais continuer à vous solliciter parce que vos compétences m'ont permises jusque là de dépasser largement tous les blocages que j'avais en matière de programmation VBA.

      je continue mon travail et j'aurais sans doute besoin ENCORE de vos lumières dans très peu de temps.

      cordialement
      I.
      0
  14. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Merci pour l'information.
    Je suis content que cela marche pour votre fichier.
    Concernant le futur, je prêterai une attention particulière en voyant votre pseudo.
    Au cas ou un MP est possible pour attirer mon attention.
    0