Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 CurrentRegion : sélection de cellules

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite une belle et chaude journée

Je n'arrive pas à adapter un code que Job75 m'a donné.
Le code était(pour appliquer une formule) :
VB:
Code origine Gérard
Sheets("Comptage_appels").Select
ActiveSheet.Unprotect Password:=""
    With [a1].CurrentRegion
    If .Rows.Count > 1 Then .Cells(4, 16).Resize(.Rows.Count - 1) = "=IF(OR(RC[-6]="""",RC[-5]=""""),"""",IF(VALUE(SUBSTITUTE(LEFT(RC[-6],8),""-"",""/"",1))=TODAY(),1,IF(MONTH(EOMONTH(VALUE(SUBSTITUTE(LEFT(RC[-6],8),""-"",""/"",1)),0))=MONTH(TODAY()),2,IF(MONTH(EOMONTH(VALUE(SUBSTITUTE(LEFT(RC[-6],8),""-"",""/"",1)),0))<MONTH(TODAY()),""3"",""""))))"
    .Columns(16) = .Columns(16).Value 'supprime les formules
    [P3] = "=SUM(RC[-4]:RC[-2])"
    End With
ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
et fonctionne très dans le fichier pour lequel il a été fait.

J'ai tenté de le modifier comme suit pour faire une sélection de cellules :
Code:
With [a6].CurrentRegion
    If .Rows.Count > 1 Then .Cells(1, 16).Resize(.Rows.Count).Select
    'If .Rows.Count > 1 Then .Cells(1, 16).Resize(.Rows.Count).Select
    '.Cells(4, 16).Resize(.Rows.Count - 1)
    End With
Mais ça ne fonctionne pas et je n'arrive pas à trouver comment faire.

J'ai besoin que seules les cellules en colonnes P avec "RdV Fait" contenu en colonne "J" soient sélectionnées.

Pourriez-vous m'aider ?
Je joins un fichier test et je continue à bidouiller

Un grand merci encore une fois,
Amicalement,
lionel,
 

Pièces jointes

  • CurrentRegion.xlsm
    52.4 KB · Affichages: 13
Dernière édition:
Solution
Fichier (2) avec création des listes de validation :
VB:
Sub sélection()
    With ActiveSheet 'Feuil1 'CodeName
        If .FilterMode Then .ShowAllData 'si la feuille est filtrée
        .Columns(16).Validation.Delete 'RAZ
        With .Rows("6:" & .Range("j" & .Rows.Count).End(xlUp).Row)
            If .Row < 6 Then Exit Sub 'sécurité
            Application.ScreenUpdating = False
            .Rows.RowHeight = 55
            .Sort .Columns(10), xlAscending, Header:=xlNo 'tri
            Union(.Rows(0), .Rows).AutoFilter 10, "RDV Fait*" 'filtre automatique
            On Error Resume Next 'si aucune SpecialCell
            With Intersect(.SpecialCells(xlCellTypeVisible), .Columns(16))
                Application.Goto .Cells(1), True...
C

Compte Supprimé 979

Guest
Bonjour Lionel

Tu es un "salaud" avec ta belle et chaude journée c'est sûr qu'en Tunisie c'est ce que tu dois avoir
Nous ici il fait froid et humide

Pourquoi ne pas appliquer tout simplement un filtre !?

A+
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Une V4 en PJ avec :
VB:
    'ICI
    Range(Cells(5, "J"), Cells([J65500].End(xlUp).Row, "J")).AutoFilter Field:=1, _
    Criteria1:="=RdV Fait", Operator:=xlOr, Criteria2:="=RdV Fait annulé"
     Range(Cells(6, "J"), Cells([J65500].End(xlUp).Row, "J")).SpecialCells(xlVisible).Select    ' Selectionne les cellules filtrées
    Selection.AutoFilter                                                                        ' Supprime le filtre

Le reste est un test, je prends les valeurs filtrées et les colle en Feuille TEST.
 

Pièces jointes

  • CurrentRegion (4).xlsm
    55.3 KB · Affichages: 2

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Merci Sylvanu,

Merci pour ton intérêt et le temps que tu passes pour moi
Ton fichier fonctionne mais ce n'est pas mon besoin; je crois que je n'arrive pas à bien expliquer ce que je souhaite.

Ne t'embêtes pas.
Je ferai ce soir un filtre pour qu'il ne m'affiche que les lignes qui contiennent "RdV Fait en colonne "L" et je me débrouillerai pour la suite des actions de mon code
lionel
 

Discussions similaires

Réponses
11
Affichages
435
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…