Automatiser mes copier coller enregistre sous

Bonjour,

Actuellement j'ai un onglet avec quelques 50 colonnes, et généralement quelques 100 lignes.
un autre onglet est une sorte de tableau qui reprend les info du premier onglet mais disposé de maniére
patchwork. dans ce second onglet je fonctionne avec une liste déroulante sur une celulle clé qui^pointe sur la colonne A du premier onglet puis des recherchev sur toutes les autres à partir de cette cellule et pointer vers le premier onglet...et parfois je colle une photo, une fois mis à jour je fait enregistrer cette onglet dans un nouveau classeur avec le nom de la cellule clé..
Je cherche à automatiser cela avec un code qui dirait que tant que tant que il y a en colonne A depuis la ligne 2 jusqu'à la derniére remplie alors remplie les cellules du second onglet (cellule evidement non contigues) et quand c'est fini enregistre ce second onglet comme un classeur avec pour nom de la ligne de la colonne A du premier onglet, voire même dit "fini pas de question, alors apéro...."
Y-a-til un bout d'exemple ?

--
Carpe Diem
Configuration: Windows XP Internet Explorer 7.0

7 réponses

  1. Contributeur
    Bonsoir,

    Et bien bon apprentissage. Tu verras, c'est très interessant vba.
    Et on voit que tu es plus habitué à répondre qu'à poser des questions. Et le résolu alors !!!! ;-)
    eric
    1
    1. Contributeur
      Bonjour cocotehier,

      Ca serait bien que tu déposes un fichier exemple sur cijoint.fr ;-)

      eric
      0
      1. Bonjour,
        J'imaginais faire cela : un peu comme le fusion publipostage d'excel vers word

        sub() copier_coller_enregistrer

        dim i as integer
        dim lastfull as integer

        Lastfull = range("a65535").end(xlup).value

        For i = 1 to Lastfull

        selectionner cellule data et copier dans cellule autre onglet
        puis l'autre etc....
        inserer la photo qui se trouve dans un autre repertoire

        quand derniere cellule alors on enregistre

        next i

        end sub

        https://www.cjoint.com/?fwvNMFM1qk
        0
        1. Bonjour,
          Je vais aussi chercher de mon côté, ce doit pas être sorcier ce truc.
          0
          1. Contributeur
            Bonsoir cocotehier,

            J'ai un peu trainé, plutôt occupé ce we ;-)

            J'ai modifié tes cellules destination qui ne collaient pas avec le format...
            J'ai mis 3 constantes au début, à modifier selon tes besoins.
            http://www.cijoint.fr/cjlink.php?file=cj200905/cijhJz7UCY.xls
            Sub copier_coller_enregistrer()
                Const pathImg As String = "D:\tmp\"
                Const suffixeImg As String = ".jpg"
                Const pathSave As String = "D:\tmp\"
                Dim shData As Worksheet
                Dim shModele As Worksheet
                Set shData = Worksheets("Data")
                Set shModele = Worksheets("MEF1")
                Dim lig As Long
                '
                For lig = 2 To shData.[A65536].End(xlUp).Row
                    'copier le modèle dans nouveau classeur
                    shModele.Copy
                    ' copier valeurs
                    ActiveSheet.[A2].Value = shData.Cells(lig, 1).Value
                    ActiveSheet.[D1].Value = shData.Cells(lig, 2).Value
                    ActiveSheet.[D4].Value = shData.Cells(lig, 3).Value
                    ActiveSheet.[B6].Value = shData.Cells(lig, 4).Value
                    ' coller image
                    ActiveSheet.Range("B8").Select
                    ActiveSheet.Pictures.Insert(pathImg & shData.Cells(lig, 5).Value & suffixeImg).Select
                    Selection.ShapeRange.LockAspectRatio = msoTrue
                    Selection.ShapeRange.Height = 150
                    Selection.ShapeRange.Width = 80
                    Selection.ShapeRange.Rotation = 0#
                    On Error Resume Next
                    ' sauvegarder classeur
                    ActiveSheet.SaveAs (pathSave & shData.Cells(lig, 5))
                    On Error GoTo 0
                    ' fermer classeur
                    ActiveWorkbook.Close
                Next lig
            '
                Set shData = Nothing
                Set shModele = Nothing
            End Sub

            eric
            0
            1. OOOOOOOooooa !
              Bonjour, Merci Eric,
              Faut pas t'excuser de retard, c'est trés sympa d'avoir porter cette réponse, j'ai vraiment acheté un bouquin que je vais lire et appliquer. Même si j'ai finalement des choses assez compliquées à traiter avec des façons simples, un bien un bon "code" cela permet....d'en faire encore plus qu'avant. J'ai toujours voulu me préserver du coding...pour ne pas mettre les mains dans le moteurs...ca, c'est comme pour mon char.
              J'ai deux bécanes, l'une tourne au 2000 avec un office 09 l'autre au 2003 avec un office 10.
              Encore Merci.

              0
              1. Bonjour,
                Résolu, je gagne vraiment beaucoup de temps avec cette macro !
                Faudras que je trouve juste pourquoi j'ai "impossible de lire la propriété insert de la classe picture"
                Je vais regardé.
                Merci

                0