De l'aide pour modifier un code!

cocomyam Messages postés 6 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 12 septembre 2008 - 12 sept. 2008 à 11:53
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 12 sept. 2008 à 18:25
Bonjour tt le monde,

Voila, j'ai récupéré ce bout de prog sur le net et il marche trés bien. Cependant, quelqu'un pourrai m'aider à le modifier afin de faire en sorte que la macro fasse un collage spécial ( mise en forme, couleur de celulle...) et pas un copier/coller tout bête.
Merci beaucoup!!

Sub planning()
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, i1, i2, i3, k, kk, z


'rajoute la feuille IENA PQQ PLANNING
Sheets.Add.Move After:=Sheets(Sheets.Count)
ActiveSheet.Select
ActiveSheet.Name = "IENA PQQ PLANNING"


'recherche les conteneurs identique entre IENA et PQQ
Set ws1 = Worksheets("Planning IENA 1")
Set ws2 = Worksheets("Planning PQQ")
Set ws3 = Worksheets("IENA PQQ PLANNING")
i1 = ws1.Range("A1").End(4).Row
i2 = ws2.Range("A1").End(4).Row
With ws1
  For k = 1 To i1
    z = .Range("A" & k)
     For kk = 1 To i2
        If z = ws2.Range("A" & kk) Then
        ws3.Range("A" & i3 + 1) = z
        ws3.Range("B" & i3 + 1) = .Range("L" & k) 'rapporte les données de IENA
        ws3.Range("C" & i3 + 1) = .Range("F" & k)
        ws3.Range("D" & i3 + 1) = .Range("G" & k)
        ws3.Range("E" & i3 + 1) = .Range("V" & k)
        ws3.Range("F" & i3 + 1) = .Range("J" & k)
        ws3.Range("G" & i3 + 1) = ws2.Range("L" & kk) 'rapporte les données de PQQ
        ws3.Range("H" & i3 + 1) = ws2.Range("F" & kk)
        ws3.Range("I" & i3 + 1) = ws2.Range("G" & kk)
        ws3.Range("J" & i3 + 1) = ws2.Range("V" & kk)
        ws3.Range("K" & i3 + 1) = ws2.Range("J" & kk)
        i3 = i3 + 1
        End If
     Next
  Next
End With
End Sub

4 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 sept. 2008 à 15:06
Salut,
Saches que le code proposé ne semble pas faire un Copier/Coller, il place simplement les valeurs  de ws1 et Ws2 dans Ws3.

Pour savoir comment faire un Copier Coller avec mise en forme, il te suffit d'utiliser l'enregistreur de macro proposé par EXCEL.

Menu Outils, Macro Enregistrer macro (je crois de mémoire)

Puis tu fais ce que tu veux avec la souris et le clavier et il te ressort le code correspondant.

@+: Ju£i€n
Pensez: Réponse acceptée
0
cocomyam Messages postés 6 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 12 septembre 2008
12 sept. 2008 à 15:42
Bonjour jrivet,

Je te remercie pour ta réponse.
Oui en effet il place les données dans ws3 et justement je voulai savoir comment faire faire pour que le "placement" se fasse avec la mise en forme sans por autant trop changer le code.
Merci

CM
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 sept. 2008 à 18:24
Re,
et bien la piste donnée ne même nul part? => enregistreur de macro.
Sinon regarde du côté de la Méthode PasteSpecial de l'objet Range.

@+: Ju£i€n
Pensez: Réponse acceptée
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 sept. 2008 à 18:25
Re,
Arg encore posté trop rapidement.

PasteSpecial est soit de l'objet Range soit de l'Objet Worksheet (je n'ai pas EXCEL sous les yeux)

@+: Ju£i€n
Pensez: Réponse acceptée
0
Rejoignez-nous