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
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
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
- Aller à la ligne excel - Guide
- Comment calculer la moyenne sur excel - Guide
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
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...
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...
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
7 juin 2008 à 14:00
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
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+
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
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...
Encore merci...
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
7 juin 2008 à 15:59
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
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