Effacer valeur d'une colonne
Bonjour, pour rendre ce fichier vraiment modulable,
je souhaiterais utiliser BOUTON 2 "macro" permettant de supprimer l'ensemble des données précédemment copiée.
Bouton 1 : copie colle les valeurs présentent en colonne L vers colonne I
Bouton 2 : supprime les valeurs présentent en colonne I
Bonjour,
Essaie ainsi :
Option Explicit
Public Sub CopyData()
Dim dl As Long, i As Long, Rng As Range
For i = 1 To Worksheets.Count
With Worksheets(i)
dl = .Cells(.Rows.Count, 8).End(xlUp).Row
Set Rng = .Cells(5, 12).Resize(dl - 4)
.Cells(5, 9).Resize(Rng.Rows.Count) = Rng.Value
End With
Next i
End Sub
Public Sub CleanData()
Dim dl As Long, i As Long, Rng As Range
For i = 1 To Worksheets.Count
With Worksheets(i)
dl = .Cells(.Rows.Count, 9).End(xlUp).Row
Set Rng = .Cells(5, 9).Resize(dl - 4)
Rng.ClearContents
End With
Next iBonjour et merci de votre retour,
j'ai essayer de le mettre en route sur mon fichier général et cela ne fonctionne pas.
Est-il necessaire de recoder la macro suivant qui fonctionne ?
Sub test()
Dim dl As Integer, i As Integer, j As Integer
For i = 1 To Sheets.Count
dl = Sheets(i).Range("H" & Rows.Count).End(xlUp).Row
For j = 5 To dl 'de la ligne 5 à la dernière ligne : à adapter
If Sheets(i).Range("L" & j) <> "" Then Sheets(i).Range("I" & j) = Sheets(i).Range("L" & j)
Next j
Next i
End Sub
J'ai essayer la macro CleanData
Public Sub CleanData()
Dim dl As Long, i As Long, Rng As Range
For i = 1 To Worksheets.Count
With Worksheets(i)
dl = .Cells(.Rows.Count, 9).End(xlUp).Row
Set Rng = .Cells(5, 9).Resize(dl - 4)
Rng.ClearContents
End With
Next i
Elle ne marche pas, erreur en jaune : " Set Rng = .Cells(5, 9).Resize(dl - 4)"
Bonjour,
Mission réussie, avec prise en charge sur l'ensemble des feuilles du classeurs
Bouton 1 : copie colle les valeurs présentent en colonne L vers colonne I
Bouton 2 : supprime les valeurs présentent en colonne I
Voici le code VBA qui fonctionne pour moi :
Sub Efface()
Dim xWs As Worksheet
On Error Resume Next
For Each xWs In Worksheets
xWs.Range("I:I").ClearContents 'efface les valeurs de la colonne I
Next
End Sub
Sub Affiche()
'copie les valeurs de la colonne L en colonne I
Dim dl As Integer, i As Integer, j As Integer
For i = 1 To Sheets.Count
dl = Sheets(i).Range("H" & Rows.Count).End(xlUp).Row
For j = 5 To dl 'de la ligne 5 à la dernière ligne : à adapter
If Sheets(i).Range("L" & j) <> "" Then Sheets(i).Range("I" & j) = Sheets(i).Range("L" & j)
Next j
Next i
End Sub