Automatiser mes copier coller enregistre sous
cocotehier
-
cocotehier -
cocotehier -
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
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
-
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 -
Bonjour cocotehier,
Ca serait bien que tu déposes un fichier exemple sur cijoint.fr ;-)
eric -
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 -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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.xlsSub 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 -
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.
-
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