Rechercher et copier une ligne en gardant la mise en forme

Résolu/Fermé
gnoux 18 Messages postés 8 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 17 février 2014 - 11 févr. 2014 à 18:08
gnoux 18 Messages postés 8 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 17 février 2014 - 17 févr. 2014 à 23:48
Bonjour,

j'ai 2 onglets :

PREPA
PROTOCOLE

Dans protocole une liste de tache numerotées du style "28.B.6.4" en premiere colonne, puis 7 cases qui suivent liees a cette taches.

dans PREPA je mets une liste N° de tache en premiere colonne.

je souhaite que la macro recopie toute la ligne de PROTOCOLE vers PREPA mais en respectant la mise en forme de PROTOCOLE.

j'arrive a le faire avec la fonctin recherchev mais ca ne prend pas mise en forme (hauteur de ligne, retour a la ligne, centrage...).

il me faudrait une macro et c'est la que cela depasse mes competences.

pourrais-je avoir de l'aide ?

d'avance merci.

PS ci besoin je peux joindre un fichier d'une ligne par mail...
A voir également:

13 réponses

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
11 févr. 2014 à 19:02
Bonjour

Tu peux envoyer une partie de ton fichier (avec quelques lignes tout de même) au format excel 2003 sur cjoint.com et joindre le lien obtenu à ton prochain message

Cordialement
0
gnoux 18 Messages postés 8 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 17 février 2014
11 févr. 2014 à 21:21
Deja merci a toi ccm81.

j'ai mis le fichier avec la formule rechercheV que j'ai fait. c'est un extrait, mon original compte 1200 lignes....

je voudrais la meme chose mais en conservant les largeurs de colonne, la mise en page dans les cellules,etc...

merci d'avance

https://www.cjoint.com/?3BlvrEIv73e
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
12 févr. 2014 à 15:14
Bonjour

Un début de réponse?
https://www.cjoint.com/?3BmpnQMFVXs

Cdlmnt
0
gnoux 18 Messages postés 8 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 17 février 2014
12 févr. 2014 à 18:17
c'est un tres bon debut !!! c'est exactement ce que je veux faire, mais l'idee est d'automatiser le truc, car en fait ma liste fait 1200 ligne si je dois cliquer sur tous
ca va etre long, mais deja je vais gagner un temps fou par rapport a manulement comme je fais en ce moment.

Si tu a mieux ce serait formidable !

je ne vois pas ta formule ni ta macro dans une case pour la transpose dans mon fichie principal elle est ou ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
12 févr. 2014 à 18:59
0
gnoux 18 Messages postés 8 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 17 février 2014
Modifié par gnoux 18 le 12/02/2014 à 21:23
un grand merci beaucoup c'est parfait.

je vais gagner un temps fou.

Maintenant il faut que je le mette dans mon fichier et que je rajoute les onglets supplementaires. Cela va t il poser probleme parce que la ca marche poa!

Si je rajoute des onglets (12 en plus) dans lesquels je ferai des copies a partir de "PROTOCOLE" dans mon fichier il faut que je change le nom des feuilles FPRO et FPRE au debut de la macro ?

Désolé mais je ne peux pas te mettre mon fichier source.

Encore un grand merci ccm81 pour le temps passé. je n'ai aucune idee du temps qu'il faut pour creer cette macro mais je sais combien de temps elle va me faire gagner !!

gnoux 18
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 13/02/2014 à 09:35
Si je rajoute des onglets (12 en plus) dans lesquels je ferai des copies a partir de "PROTOCOLE" dans mon fichier il faut que je change le nom des feuilles FPRO et FPRE au debut de la macro ?

Si FPRO reste la feuille base de données
il te suffir dans la macro de remplacer
Sheets(FPRO).Rows(lis & ":" & lis).Copy Sheets(FPRE).Rows(li & ":" & li)
par
Sheets(FPRO).Rows(lis & ":" & lis).Copy ActiveSheet.Rows(li & ":" & li)

Si FPRO doit changer, on peut demander en début de procedure de donner le nom de la feuille

Bonne journée
0
gnoux 18 Messages postés 8 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 17 février 2014
13 févr. 2014 à 19:19
bonsoir,

quand j'execute la macro dans mon fichier ca bug et le debogage me dit que ca plante ici en gras

Option Explicit

Public Const FPRO = "PROTOCOLE"
Public Const plagesys = "cosysteme"

Public Const FPRE = "PREPA"

Public Sub Transfert(sys As String, li As Long)
Dim plage As Range, lis As Long
Dim s As Object
Dim Tsy
' definir la plage systeme
Set plage = Sheets(FPRO).Range(plagesys)
' recherche de sys dans plage
Set s= plage.Find(sys, , , xlWhole)
' si sys pas trouve erreur
If s Is Nothing Then
MsgBox "erreur dans l'intitule du systeme"
Exit Sub
End If
' copier la ligne trouvée feuille FPRO dans la feuille FPRE
lis = s.Row
Sheets(FPRO).Rows(lis & ":" & lis).Copy ActiveSheet.Rows(li & ":" & li)
End Sub

Public Sub Kopier()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Selection
Call Transfert(c.Value, c.Row)
Next c
Application.ScreenUpdating = True
End Sub

merci de ton aide
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
13 févr. 2014 à 19:47
Dans la feuille PROTOCOLE
il te faut définir la plage nommée cosysteme
cosysteme=DECALER(PROTOCOLE!$A$2;0;0;NBVAL(PROTOCOLE!$A:$A)-1;1)

si ça te pose un problème tu peux remplacer dans le code
Public Const plagesys = "cosysteme"
par
Public Const plagesys = "A:A"
0
gnoux 18 Messages postés 8 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 17 février 2014
13 févr. 2014 à 23:37
Et bien un grand merci ccm81 mon fichier de 1200 lignes est a jour grace a toi en une soiree alors qu'il aurait fallu 2-3 semaines pour le faire manuelement.

je vais donc marque le sujet resolu.

peut etre a une prochaine,

toute ces manips m'ont bien fait progresse.

Encore merci.
0
gnoux 18 Messages postés 8 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 17 février 2014
Modifié par gnoux 18 le 15/02/2014 à 23:56
bonsoir ccm81

Tout marche bien mais juste un petit truc, au lieu de copier toute la ligne puis-je limiter la copie aux colonnes B à K de la ligne concernée ?

Je suppose qu'il faut changer dans cette ligne :

' copier la ligne trouvée feuille FPRO dans la feuille FPRE
lis = s.Row
Sheets(FPRO).Rows(lis & ":" & lis).Copy ActiveSheet.Rows(li & ":" & li)
End Sub

merci.
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 17/02/2014 à 20:39
Ajouter à la liste des constantes

Public Const codeb = "B"
Public Const cofin = "K"

puis remplacer
Sheets(FPRO).Rows(lis & ":" & lis).Copy ActiveSheet.Rows(li & ":" & li)
par (tout sur la même ligne)
Sheets(FPRO).Range(codeb & lis & ":" & cofin & lis).Copy ActiveSheet.Range(codeb & li)

Bonne suite
0
gnoux 18 Messages postés 8 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 17 février 2014
17 févr. 2014 à 23:48
de nouveau un grand merci ca marche nickel.
0