Excel respect de la mise en page!!
Résolu
geeby
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
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
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:
- Coller en respectant la mise en forme de destination excel
- Mise en forme conditionnelle excel - Guide
- Mise en forme tableau word - Guide
- Liste déroulante excel - Guide
- Mise en forme tableau croisé dynamique - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
24 réponses
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...
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...
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
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+
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+
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...
Encore merci...
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
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