Excel respect de la mise en page!!

Résolu/Fermé
geeby Messages postés 16 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 12 juin 2008 - 4 juin 2008 à 00:19
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 7 juin 2008 à 15:59
Bonjour,

je souhaiterais recopier des informations d'une feuille à l'autre tout en gardant la même mise en forme, même couleur etc. sur excel 2003.

En fait je voudrais que les infos de la feuille A se retrouve automatiquement dans la feuille B tout en gardant la même couleur de fond, la même police, couleur de police etc. La mise en forme en fait! J’ai des formules du style : « ='lundi 11 matin'!C15 » j’ai le bon texte qui se retrouve dans la case (logique) mais la mise en forme, est différente de l’original et je n’arrive pas à garder la mise en forme de la cellule souche…Est-ce possible???

Merci d'avance

Geeby
A voir également:

24 réponses

geeby Messages postés 16 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 12 juin 2008 4
7 juin 2008 à 13:18
Salut, je touche au but. Michel_m, j'obtiens bien la mise en page pour mes cellules et ça c'est cool. Comme tu me le dis pour mon tableau je sélectionne la première cible et ensuite je fait glisser sur les deux colonnes à l'aide de la petite croix noir en bas à droite de la case et ensuite je fais glisser de la même manière sur toutes les lignes dont j'ai besoin... et là erreur d'execution '13' : incompatibilité de type...Je clique sur fin et il faut donc que je sélectionne une par une mes cellules que je valide la formule insérée automatiquement par excel et là j'obtiens la bonne mise en page (c'est déjà cool et faisable avec un clic dans la barre blanche et entrée ainsi de suite...). Pensez vous qu'il est possible de régler ce pb??
Un truc du style sélectionner une cellule, lui appliquer le module que tu as fait et passer aux cellules suivantes...
En tout cas merci beaucoup...
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
7 juin 2008 à 14:00
Bonjour vous deux,
Comme il y a plus dans deux têtes que dans une j'ai adapté les macros en une qui fait tout et sans mnipulation.
Tu colle la macro ci-dessous dans un module
Sub CopieFormat()
Dim i As Integer, e As Integer
Dim Txt As String
Dim T
Dim Cel As Range
Dim R As Long, C As Integer
    sheets("Feuil3").Select
    
    Range("A1:A" & Range("A1").SpecialCells(xlCellTypeLastCell).Row).Select
    For Each Cel In Selection
        If Cel.HasFormula = True Then
            Txt = Mid(Cel.Formula, 2)
            T = Split(Txt, "!", -1)
            Sheets(T(0)).Select
            R = Range(Txt).Row: C = Range(Txt).Column
            Range(Cells(R, C), Cells(R, C + 2)).Select
            Selection.Copy
            sheets("Feuil3").Select
            Cel.Select
            Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
            Application.CutCopyMode = False
        End If
    Next Cel
End Sub

Juste adapté Feuil3 au nom de ta feuille destination
sheets("Feuil3").Select
Autant de feuilles que tu veux, tu met toutes les formules que tu veux, ligne vide autorisée, titre autorisé etc..
Comme tu dit plus haut, tu copie toujours 3 colonnes, si plus changer le 2 en nombre de colonnes -1
Range(Cells(R, C), Cells(R, C + 2)).Select
Quand ta page est remplie de toute tes adresses, mettre le curseur dans la macro et tape F5, tout est fait en une fois...
Si ca convient tu peu la lier à un bouton d'une barre d'outils.
A+


0
geeby Messages postés 16 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 12 juin 2008 4
7 juin 2008 à 14:07
Parfait un grand merci à vous deux... Et félicitation, je vais de même me mettre au vba que je ne connaissais pas ça a l'air bien sympa je vais commencer par essayer de comprendre ce programme
Encore merci...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
7 juin 2008 à 15:59
A la bourre comme d'hab

mais

avec les modifs demandées:

Tu sélectionnes la zone voulue et tu fais un clic droit

Remplace Worksheets=_change

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim plage As String
Cancel = True
plage = Selection.Address
Call copierformat(plage)
End Sub


Remplace l'ancienne copierformat

Sub copierformat(ByVal cible As String)
Dim depart As String, cellule As Range

Application.ScreenUpdating = False

For Each cellule In Range(cible)
If cellule.HasFormula Then
With cellule
depart = .Formula
depart = Right(depart, Len(depart) - 1)
.Interior.ColorIndex = Range(depart).Interior.ColorIndex
With .Font
.FontStyle = Range(depart).Font.FontStyle
.ColorIndex = Range(depart).Font.ColorIndex
End With
End With
End If
Next
Application.ScreenUpdating = True
End Sub


tite démo ci jointe pour le fun

Si tu te mets au VBA, je te conseille vivement ce site
www.info-3000.com

où tu trouveras des tutos très pédagogiques et décontractés

Bonne découverte

Michel
0