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

73transitoires.7z (82.89 Ko)

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 Sub

A+

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...

Rechercher des sujets similaires à "action"