|
|
|
|
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
Configuration: Windows XP Internet Explorer 7.0 Excel 2003
Salut moi je fais comme cela :
|
Merci pour vos réponse. Cette méthode ne permet pas de résoudre mon problème car dans la dernière feuille de mon classeur se retrouvent des informations de plusieurs feuilles et je souhaite que chaque texte garde la mise en forme de la case dont il est issu et étant donné que je trie les infos dans la dernière feuille utiliser le pinceau ne permet pas de cibler les cellules en rapport avec cette page mais il l'applique au haut de page uniquement...
|
Bonjour tout le monde,
|
Je vais essayer d'etre plus clair car moi aussi j'ai écris au saut du lit...
|
Ce sont des mises en forme manuelles
|
Bonjour,
|
Les adresses des cellules de la feuilles trois sont déterminé manuellement. Je tape sur "=" puis à l'aide de la souris je selctionne la cible et ensuite j'étend la cible avec la souris pour que la sélection fasse le même travail pour retrouver toutes les colonnes de toutes mes feuilles dans la troisième feuille.
|
OK, c'est plus clair,
|
Non parfois ce sont Dx,Ex et Fx qui se retrouve en Ax,Bx et Cx dans la feuille 3, il existe des lignes vides (pour info je n'utilise pas le copier coller car ce que j'ai fait permet de répercuter tout changement dans l'une de mes feuilles dans la feuille bilan qui elle est triée par ordre alphabétique dans la colonne C donc l'ordre n'est plus respecté par rapport aux autres feuilles c'est a dire que la ligne 1 peut être ='feuil1'!A5 et la ligne 2 ='feuil2'!A34 et ligne 3='feuil1'!A23 ...) C'est pour ça que je pense à une macro qui travaille cellule par cellule...
|
Répondre à geeby
|
Bon, un peu tarder mais ca n'a pas été simple...
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
Feuil3.Select
Range("A1:A" & Range("A1").SpecialCells(xlCellTypeLastCell).Row).Select
For Each Cel In Selection
Txt = Mid(Cel.Formula, 2)
If Txt <> "" Then
T = Split(Txt, "!", -1)
If Right(T(O), 1) = "1" Then
Feuil1.Select
Else
Feuil2.Select
End If
R = Range(T(1)).Row: C = Range(T(1)).Column
Range(Cells(R, C), Cells(R, C + 2)).Select
Selection.Copy
Feuil3.Select
Cel.Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
Next Cel
End Sub
NB: fonctionne uniquement avec les critères que tu à renseigner et SANS CHANGER LE NOM DES FEUILLES Sauf pour la 3 Quand tu à ajouter tes cellules tu met le curseur dans la macro et tape F5 ou F8 pour du pas à pas. Tu dit, si quelque changements ont verras. A+ EDIT: j'avais pas vu que tu avait une dizaine de feuilles, dans ton premier poste tu parlais de copier feuil1.. Feuil2 dans Feuil3. C'est ce que ca fait, essaye donc avec Feuil1,2 et 3 je rectifierait si cela convient. Mais dans tout les cas tu doit laisser les noms des feuilles, moyen de changer mais alors tu devra adapter la macro si tu en est capable. L'expérience instruit plus sûrement que le conseil. (André Gide) |
Merci de ton aide désolé de répondre si tard mais j'étais au boulot il y a un problème dans la macro. Ca me dit que "erreur d'execution '9': l'indice n'appartient pas à la sélection" si je clique sur débogage ce texte est surligné en jaune : R = Range(T(1)).Row dans la macro?
|
Pas de problème c'est quand tu veux..
|
Je crois que j'ai compris, tu à des ligne de titres dans tes pages.. modifie la macro comme cella..
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
Feuil3.Select
Range("A1:A" & Range("A1").SpecialCells(xlCellTypeLastCell).Row).Select
For Each Cel In Selection
Txt = Mid(Cel.Formula, 2)
If Txt <> "" Then
T = Split(Txt, "!", -1)
If UBound(T) = 1 Then
If Right(T(O), 1) = "1" Then
Feuil1.Select
Else
Feuil2.Select
End If
R = Range(T(1)).Row: C = Range(T(1)).Column
Range(Cells(R, C), Cells(R, C + 2)).Select
Selection.Copy
Feuil3.Select
Cel.Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
End If
Next Cel
End Sub
A+ L'expérience instruit plus sûrement que le conseil. (André Gide) |
Bonsoir ou bonjourà tous suivant l'heure de lecture
|