Mise en forme

G

G'Claire

Guest
Zon, le forum

Merci, cela fonctionne nettement mieux maintenant, je vais voir pour le mettre dans le module correspondant aux modifications de ma feuille, car a priori je ne peu mettre Call devant.

Et si je met ton code en tête de module cela fonction pareil

Sub MiseEnForme(Plage as Range)

Range([A65536].End(xlUp)(1), [T65536].End(xlUp)(1))

With plage.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.Weight = xlThick
End With
'...
end sub

et que j'appele la procédure comme suit :

Call MiseEnForme

Car je ne peu faire cela :

Call MiseEnForme Range([A65536].End(xlUp)(1), [T65536].End(xlUp)(1))

Cela me met une erreur.

Merci, trés, trés beaucoup, G'Claire
 
G

G'Claire

Guest
Salut a toutes et tous

J'utilise ce code afin lors de l'envoie dans ma feuille des données d'un UserForm faire un emise en forme de ma nouvelle entrée, et biensur cela ne fonctionne pas, cela ne fait rien (Fonction faite par l'enregistreur de macro).


'créer Dans la feuille Tool_Données

With Range("A65536").End(xlUp)(2)

Msg5 = MsgBox(" Voulez-vous ranger ce dossier ? ", vbYesNo + vbQuestion, "Confirmation")
If Msg5 = vbYes Then

.Value = "'" & LTrim(UserForm2.TextBoxReferenceProduit.Value) + UserForm2.TextBoxVersion.Value + UserForm2.TextBoxIndice.Value + UserForm2.TextBoxSup.Value 'Gestion du zéro
.Offset(0, 1).Value = "'" & UserForm2.TextBoxReferenceProduit.Value 'Gestion du zéro
.Offset(0, 2).Value = UserForm2.TextBoxVersion.Value
.Offset(0, 3).Value = UserForm2.TextBoxIndice.Value
.Offset(0, 4).Value = UserForm2.TextBoxSup.Value
.Offset(0, 5).Value = UserForm2.TextBoxDesignationProduit.Value
.Offset(0, 6).Value = UserForm2.TextBoxCasier.Value
.Offset(0, 7).Value = Application.Proper(Format(Now, "dddd dd mmmm yyyy "))
.Offset(0, 8).Value = UserForm2.ComboBoxPrenomNomOperateur.Value
.Offset(0, 9).Value = "'" & UserForm2.TextBoxMatricule.Value 'Gestion du zéro
.Offset(0, 10).Value = Replace(UserForm2.TextBoxCableurs.Text, Chr(13), "")
.Offset(0, 11).Value = UserForm2.ComboBoxClients.Value
.Offset(0, 12).Value = UserForm2.TextBoxSociete.Value
.Offset(0, 13).Value = UserForm2.TextBoxTelClients.Value
.Offset(0, 14).Value = UserForm2.TextBoxE_Mail.Value
.Offset(0, 15).Value = "Rangé"
.Offset(0, 16).Value = Application.Proper(Format(Now, "dddd dd mmmm yyyy "))
.Offset(0, 17).Value = "'" & Format(Now, "Long Time")
.Offset(0, 18).Value = UserForm2.ComboBoxPrenomNomOperateur.Value
.Offset(0, 19).Value = "'" & UserForm2.TextBoxMatricule.Value

Call HauteurAutomatique
Call TriCroissant
Call MiseEnForme
Else
.Value = "'" & LTrim(UserForm2.TextBoxReferenceProduit.Value) + UserForm2.TextBoxVersion.Value + UserForm2.TextBoxIndice.Value + UserForm2.TextBoxSup.Value 'Gestion du zéro
.Offset(0, 1).Value = "'" & UserForm2.TextBoxReferenceProduit.Value 'Gestion du zéro
.Offset(0, 2).Value = UserForm2.TextBoxVersion.Value
.Offset(0, 3).Value = UserForm2.TextBoxIndice.Value
.Offset(0, 4).Value = UserForm2.TextBoxSup.Value
.Offset(0, 5).Value = UserForm2.TextBoxDesignationProduit.Value
.Offset(0, 6).Value = UserForm2.TextBoxCasier.Value
.Offset(0, 7).Value = Application.Proper(Format(Now, "dddd dd mmmm yyyy "))
.Offset(0, 8).Value = UserForm2.ComboBoxPrenomNomOperateur.Value
.Offset(0, 9).Value = "'" & UserForm2.TextBoxMatricule.Value
.Offset(0, 10).Value = Replace(UserForm2.TextBoxCableurs.Text, Chr(13), "")
.Offset(0, 11).Value = UserForm2.ComboBoxClients.Value
.Offset(0, 12).Value = UserForm2.TextBoxSociete.Value
.Offset(0, 13).Value = UserForm2.TextBoxTelClients.Value
.Offset(0, 14).Value = UserForm2.TextBoxE_Mail.Value
.Offset(0, 15).Value = "Sorti"
.Offset(0, 16).Value = Application.Proper(Format(Now, "dddd dd mmmm yyyy "))
.Offset(0, 17).Value = "'" & Format(Now, "Long Time")
.Offset(0, 18).Value = UserForm2.ComboBoxPrenomNomOperateur.Value
.Offset(0, 19).Value = "'" & UserForm2.TextBoxMatricule.Value

Call HauteurAutomatique
Call TriCroissant
Call MiseEnForme
End If
End With
End If


Fonction MiseEnForme :


Sub MiseEnForme()
'
' Macro1 Macro
' Macro enregistrée le 17/03/2004 par G'Claire
'

'
ActiveWindow.ScrollColumn = 1

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub

Qu'es-ce qu'il ne va pas?

Merci pour votre aide, G'Claire
 
G

G'Claire

Guest
Zon, le forum

Merci.
En faite j'ai donné le code du bouton "ajouter" une fois mes données remplient.

Sinon je n'ai pas d'autres procédures.

De quelles autres procédures, parle tu?

Merci,G'Claire
 
G

G'Claire

Guest
zon, le forum

ha, oki excuse me.
Voila les codes.

Sub TriCroissant()

' TriCroissant Macro
' Macro enregistrée le 11/03/2004 par Zeziola

Range("A8:T65536").Select
Selection.Sort Key1:=Range("A8"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Sub HauteurAutomatique()

With Columns("K:K")
.Columns.AutoFit
.Rows.AutoFit
.HorizontalAlignment = xlRight
.VerticalAlignment = xlTop
End With

End Sub

Merci, G'Claire
 
G

G'Claire

Guest
Zon , le forum

En faite pour les procédure Tri Croissantes et HauteursAutomariques je suis partie du principes que c'est tout le tableaux ou j'applique la procédures, tandis que pour la mise en forme (Choix des formats de lignes autours de la nouvelle ligne ajoutée) c'est sur l'ajout d'une lignes.

En faite quand j'ajoute des données (Si la derniere été en ligne 10 par example), le format des lignes serait :

Ligne Gauche = double trait
Ligne droite = Double trait
Ligne intermédiaire = Trait fin
Ligne haute = Trait fin
ligne Basse = Double trait

Si je le fait sur toute la plage : Range("A8:T65536").Select , cela va me faire toute la feuille sur ce format, alors que j'aimerai le faire que sur l'ajout d'une nouvelle référence.

Merci, de ton aide, G'Claire
 
Z

Zon

Guest
Salut,

Tu peux passer en parametre la plage que tu désires dans miseenforme les selection deviennent plage


Sub MiseEnForme(Plage as Range)
With plage.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.Weight = xlThick
End With
'...
end sub

tu appelles ensuite comme ceci

MiseEnForme Range([A65536].End(xlUp)(1), [T65536].End(xlUp)(1)) .

Si tu veux que la ligne du bas soit en double trait il faut modifier xledgebottom le style et l'épaisseur du trait (comme xledgeleft et xledgeright)

A+++
 

Discussions similaires

Statistiques des forums

Discussions
312 373
Messages
2 087 719
Membres
103 654
dernier inscrit
kingdz2022