Copier cellules contenant "B" et les colonnes adjacentes
Fermé
Cestmoi007
-
14 mai 2023 à 13:14
cestmoi007 Messages postés 3 Date d'inscription lundi 3 avril 2017 Statut Membre Dernière intervention 7 février 2025 - 14 mai 2023 à 15:40
cestmoi007 Messages postés 3 Date d'inscription lundi 3 avril 2017 Statut Membre Dernière intervention 7 février 2025 - 14 mai 2023 à 15:40
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
- Formule excel pour additionner plusieurs cellules - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Comment copier une vidéo youtube - Guide
- Word colonnes indépendantes - Guide
- Super copier - Télécharger - Gestion de fichiers
2 réponses
ozone_
Messages postés
1518
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
2 juin 2023
478
14 mai 2023 à 13:18
14 mai 2023 à 13:18
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
cestmoi007
Messages postés
3
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
7 février 2025
14 mai 2023 à 15:40
14 mai 2023 à 15:40
Merci
mais à la dernière ligne :
ws2.Range("A2:C" & j-1).Select il me dit:
Erreur d'exécution '1004' La méthode Select de la classe Range a échoué
Ou pourrais-je trouver les définitions des codes (genre autofilter...Field....) en français
Merci encore