Action si
Bonjour à tous,
Toujours en phase d'apprentissage sur VBA, je souhaite terminer un projet sur lequel j'ai déjà obtenu d'aide sur ce forum et je vous avoue que je patauge..
Je vous met le fichier en pièces jointes.
Mon problème est le suivant : Quand j'appuie sur le bouton +, les colonnes (Vibrations) se rajoutent bien jusqu'à la 4ème (Maximum) et le boutons - m'enlève bien les colonnes (Vibrations) en me laissant la dernière qui le minima.
Le problème que je rencontre est pour la mise en page du fichier: Quand on rajoute des colonne j'aimerais que les bordures se remettent automatiquement et proprement.. En voyant le fichier vous comprendrez.
Ps: La colonne vibration est la M
Merci par avance pour votre aide!
Bonne journée
Bonjour,
Il suffit de personnaliser la modification des bordures selon chaque cas.
Sub AddVibrationCol()
Dim LastCol As Integer, Idx As Integer
Dim TmpStr As String
LastCol = ThisWorkbook.Sheets(1).Range("A20").CurrentRegion.Columns.Count
If LastCol > 15 Then Exit Sub
ThisWorkbook.Sheets(1).Columns(13).Copy _
Destination:=ThisWorkbook.Sheets(1).Cells(1, LastCol + 1)
Idx = LastCol + 2 - 13
TmpStr = "Vibrations " & Idx & " Max (mm/s)"
ThisWorkbook.Sheets(1).Cells(20, LastCol + 1) = TmpStr
ThisWorkbook.Sheets(1).Cells(27, LastCol + 1) = TmpStr
ThisWorkbook.Sheets(1).Cells(34, LastCol + 1) = TmpStr
AdaptAll "Plus"
End Sub
Sub DelVibrationCol()
Dim LastCol As Integer, Idx As Integer
LastCol = ThisWorkbook.Sheets(1).Range("A20").CurrentRegion.Columns.Count
If LastCol = 13 Then Exit Sub
ThisWorkbook.Sheets(1).Columns(LastCol).Delete
AdaptAll "Moins"
End Sub
Sub AdaptAll(Sens As String)
Dim LastCol As Integer
Dim Plage As Range
Dim Sh As Worksheet
Set Sh = ThisWorkbook.Sheets(1)
LastCol = ThisWorkbook.Sheets(1).Range("A20").CurrentRegion.Columns.Count
Set Plage = Sh.Range(Sh.Cells(4, 1), Sh.Cells(5, LastCol))
Plage.MergeCells = True ' Elargissement des cellules fusionnée de la ligne 26
Set Plage = Sh.Range(Sh.Cells(19, 1), Sh.Cells(19, LastCol))
Plage.MergeCells = True ' Elargissement des cellules fusionnée de la ligne 19
Set Plage = Sh.Range(Sh.Cells(26, 1), Sh.Cells(26, LastCol))
Plage.MergeCells = True ' Elargissement des cellules fusionnée de la ligne 26
Set Plage = Sh.Range(Sh.Cells(33, 1), Sh.Cells(33, LastCol))
Plage.MergeCells = True ' Elargissement des cellules fusionnée de la ligne 33
Set Plage = Sh.Range(Sh.Cells(1, LastCol), Sh.Cells(38, LastCol))
Plage.Borders(xlEdgeRight).Weight = xlMedium ' de la dernière colonne
If Sens = "Plus" Then Plage.Borders(xlEdgeLeft).Weight = xlThin ' modification des bordures
Set Sh = Nothing
Set Plage = Nothing
End SubA+
Re,
Cela fonctionne pour la première colonne mais pas pour les suivantes. J'imagine qu'il faut traduire ca du style : Si la colonne vibrations 2 est présente alors... mais je n'arrive pas a la traduire en code...