Bonjour le forum,
je voudrais supprimer tout les boutons contenu dans la copie d'un workbook.
J'ai essayé de le mettre en "non imprimable", de mettre l'option"ne pas déplacer au ajuster avec la cellule,... mais rien y fait.
Je me retourne donc vers le VBA. J'ai vus sur le net ceci qui me semblais être une bonne base :
Sheets("Feuil1").Shapes.SelectAll
Selection.Delete
mais je n'ai aucune idée de comment l'implémenter
J'ai essayé de faire quelque mais sans résultat probant ...
ThisWorkbook.Sheets(shtName).Shapes.SelectAll
Selection.Delete
Je suppose qu'il faut faire une sorte de boucle, mais j'en suis incapable.
Pouvez-vous m'aider svp.
Merci d'avance
Sub SaveForField()
Dim nomfichier As String
nomfichier = ThisWorkbook.Sheets("Legend").Range("I2").Text ' Nom du fichier
RepertoryPath = "C:\Cleanpatch\" & nomfichier & "\" 'Identification du répertoire de sauvegarde
' Vérifier si chemin existe avec l'année, sinon le créer
If Dir(RepertoryPath, vbDirectory) = "" Then MkDir RepertoryPath
Dim Wb As Workbook
Dim shtName As String
Dim nomfichierwb As String
Dim dcol As String
Dim lig As Byte
For i = 2 To ThisWorkbook.Sheets("Legend").Range("F" & Rows.Count).End(xlUp).Row
shtName = ThisWorkbook.Sheets("Legend").Range("F" & i).Value ' Récupérer le nom de l'onglet
' le déverrouiiler
'Sheets(shtName).Unprotect "MDP"
If i = 2 Then
ThisWorkbook.Sheets(shtName).Copy ' copier la feuille
Set Wb = ActiveWorkbook
Else: ThisWorkbook.Sheets(shtName).Copy after:=Wb.Sheets(Sheets.Count)
End If
With Wb.Sheets(i - 1).Cells
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
With Wb.ActiveSheet
dcol = .Cells(.ListObjects(1).HeaderRowRange.Row, .ListObjects(1).ListColumns.Count).Address
'.Range("K2:" & dcol).EntireColumn.Delete
.Range("AU2:BG2").EntireColumn.Delete
.Range("AO:AR").EntireColumn.Delete
.Range("AG2:AM2").EntireColumn.Delete
.Range("AE2").EntireColumn.Delete
.Range("V2:Y2").EntireColumn.Delete
.Range("P2:S2").EntireColumn.Delete
.Range("M2:N2").EntireColumn.Delete
.Range("I2:K2").EntireColumn.Delete
.Range("C2:E2").EntireColumn.Delete
.Name = "Field " & ThisWorkbook.Sheets("Legend").Range("F" & i).Text 'Nom onglet
End With
Next i
nomfichierwb = "For Field " & nomfichier & " " & Format(Date, "dd-mm-yy") & "_" & Format(Time, "hh-mm") ' Nom du fichier
' Wb.SaveAs ThisWorkbook.Path & "\" & nomfichierwb ' Enregistrer-sous
Wb.SaveAs RepertoryPath & nomfichierwb ' Enregistrer-sous
ThisWorkbook.Sheets(shtName).Shapes.SelectAll
Selection.Delete
End Sub