Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Voila je vous explique mon problème:
Je remplie la première cellule vide de la colonne A via un Userform, jusque la pas de problème.
Seulement j'aimerais qu'a chaque nouvelle entrée la ligne remplie ce fusionne avec la ligne du dessous, afin d'avoir, pour chaque "Nom", deux ligne.
Bon je sais que ce ne doit pas être très clair alors je joint un petit fichier exemple
Merci à ceux qui prendront le temps de me lire et de me répondre !
Je te propose la modification suivante dans ton code:
Code:
Private Sub CommandButton1_Click()
Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = TextBox1.Value
With Range(Range("A" & Rows.Count).End(xlUp), Range("A" & Rows.Count).End(xlUp).Offset(1, 0))
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.MergeCells = True
End With
Unload Me
End Sub
En fait, pour faire ce genre de codes simples, il y a plusieurs façons:
- rechercher sur internet et dans l'aide excel les méthodes et propriétés te permettant de réaliser ce que tu veux : là, il faut bien utiliser les termes d'Excel pour avoir des résultats satisfaisants.
- utiliser l'enregistreur de macros : c'est bien pour toutes les choses simples, mais ça rajoute souvent des méthodes qui ne t'intéressent pas
Tu trouveras ci-dessous un exemple du deuxième cas qui répond à ta demande (j'ai volontairement indiqué des infos que tu dois connaître mais qui peut être utiles pour d'autres):
1/ Mettre l'enregistreur de macro en route (Onglet Développeur sur Excel2010)
2/ Faire que tu souhaites automatiser (dans ton cas, encadrer une cellule)
3/ Arrêter l'enregistreur (bouton stop)
4/ Epurer le code fourni par l'enregistreur (Onglet Développeur sur Excel2010/Visual Basic, ouvrir le dernier module dans l'arborescence du projet)
Dans notre cas (encadrement extérieur simple noir à partir d'une cellule sans mise en forme de bordure) faire les points 1/, 2/ et 3/ donnent ceci:
Code:
Sub Macro6()
'
' Macro6 Macro
'
'
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub
Ce qui fait beaucoup de lignes pour pas grand chose, le point 4/ peut donner ceci par contre (mais là c'est à toi de faire le distingo entre les méthodes):
Code:
Sub Macro6()
Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
End Sub
A noter que l'enregistreur à beaucoup de défauts, mais il permet de se familiariser facilement avec des méthodes tout en apprenant à épurer le code et à le commenter (mon point faible).
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.