• Initiateur de la discussion Initiateur de la discussion G'Claire
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
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
 
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+++
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
365
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
806
Retour