Copier cellules contenant "B" et les colonnes adjacentes
Cestmoi007
-
cestmoi007 Messages postés 4 Statut Membre -
cestmoi007 Messages postés 4 Statut Membre -
Bonjour,
J'ai une feuille de calcul ayant plusieurs colonnes. Ce sont les colonnes B,C et D qui m'intéressent. Je veux sélectionner toutes les cellules de la colonne C qui contiennent la lettre B genre ("C:C","B"&"*") puis ensuite copier toutes ces cellules mais également les cellules B et D aussi sur la feuille 2 plage A2:C20 par exemple.
Merci d'avance
Windows / Firefox 112.0
A voir également:
- Copier cellules contenant "B" et les colonnes adjacentes
- Comment faire des colonnes sur word - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
- Verrouiller cellules excel - Guide
2 réponses
Bonjour,
Une approche possible en VBA :
Sub CopierCellules()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim i As Long
Dim j As Long
Dim k As Long
' Définir les noms de feuilles de calcul
Set ws1 = ThisWorkbook.Sheets("Feuille1")
Set ws2 = ThisWorkbook.Sheets("Feuille2")
' Activer le filtre automatique
ws1.Range("B1:D1").AutoFilter
' Filtrer les cellules de la colonne C qui contiennent la lettre "B"
ws1.Range("B1:D1").AutoFilter Field:=3, Criteria1:="=*B*"
' Copier les cellules filtrées vers la feuille 2
j = 2 ' Ligne de début sur la feuille 2
For i = 2 To ws1.Range("C" & ws1.Rows.Count).End(xlUp).Row ' Parcourir les cellules filtrées
If ws1.Range("C" & i).EntireRow.Hidden = False Then ' Vérifier si la ligne n'est pas masquée par le filtre
ws2.Range("A" & j).Value = ws1.Range("B" & i).Value ' Copier la cellule de la colonne B
ws2.Range("B" & j).Value = ws1.Range("C" & i).Value ' Copier la cellule de la colonne C
ws2.Range("C" & j).Value = ws1.Range("D" & i).Value ' Copier la cellule de la colonne D
j = j + 1 ' Passer à la ligne suivante sur la feuille 2
End If
Next i
' Désactiver le filtre automatique
ws1.Range("B1:D1").AutoFilter
' Sélectionner la plage copiée sur la feuille 2
ws2.Range("A2:C" & j - 1).Select
End Sub