Créer un plage en vba

CyK

XLDnaute Junior
Bonjour le Forum,
Bonjour le Fil,

Voilà je crée à la volée des tableaux dont la taille varie notamment en fonction d'un périmètre de dates. Une fois le tableau constitué je cherche à selectionner des plages pour les mettre en forme et c'est là que j'ai une problème cela ne fait rien, je crée mon tableau comme ceci
Code:
Sub TURN()
    
    Sheets("SALES ON RANGE").Select
    Range("A1").Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets("TH_STOCK ON RANGE").Select
    Range("A1").Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    
    Sheets("PROD TURN OVER").Select
   
    Range("B4").Select
    
    For i = 0 To 255 - ActiveCell.Column
        Cells(ActiveCell.Row, ActiveCell.Column + i).Value = Null
        Cells(ActiveCell.Row - 1, ActiveCell.Column + i).Value = Null
    Next i
    
    Sheets("MGMT SCREEN").Select
    Range("BEGIN_DATE_").Select
    Begin_ = ActiveCell.Value
    
    Range("END_DATE_").Select
    End_ = ActiveCell.Value
    
    Sheets("PROD TURN OVER").Select
    Range("B4").Select
    
    For i = 0 To End_ - Begin_ + 7
    
        'Build Line with Dates
        Cells(ActiveCell.Row, ActiveCell.Column + i).Value = Begin_ + i
        
        'Build Line with Day of Week
        Cells(ActiveCell.Row - 1, ActiveCell.Column + i).Value = "=WEEKDAY(R[+1]C)"
        
        'Build First Line
        'Blank
        If i < 6 Then
        Cells(ActiveCell.Row + 1, ActiveCell.Column + i).Value = "=NA()"
        End If
        
        'Coverage
        If i >= 6 And i <= End_ - Begin_ Then
        
        Cells(ActiveCell.Row + 1, ActiveCell.Column + i).Value = _
        "=IF(SUMPRODUCT((SALES_ARTICLE_=RC1)*(SALES_DATE_>=R4C-6)*(SALES_DATE_<=R4C),SALES_SUM_)>0,SUMPRODUCT((THST_ARTICLE_=RC1)*(THST_DATE_=R4C),THST_SUM_)/SUMPRODUCT((SALES_ARTICLE_=RC1)*(SALES_DATE_>=R4C-6)*(SALES_DATE_<=R4C),SALES_SUM_),NA())"
        End If
        
        'Trend
        If i > End_ - Begin_ Then
        Cells(ActiveCell.Row + 1, ActiveCell.Column + i).Value = _
        "=GROWTH(RC[-7]:RC[-1],R3C[-7]:R3C[-1],R3C)"
        End If
    Next i
    
        
End Sub

Tout cela fonctionne parfaitement, donc ma dernière cellule est :
Code:
Range("B4").Offset(ActiveCell.Row + 1, ActiveCell.Column + i).Select

Comment selectionner cette cellule et les 6 cellules précédentes (en ligne) pour les mettre en forme,

pour les mettre en forme j'aurais fait :
Code:
With Selection.Font
        .Name = "Arial"
        .FontStyle = "Bold"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 16
End With

mais pour sélectionner je ne trouve pas.

D'avance merci.
 

Gorfael

XLDnaute Barbatruc
Re : Créer un plage en vba

CyK à dit:
Bonjour le Forum,
Bonjour le Fil,
........
Tout cela fonctionne parfaitement, donc ma dernière cellule est :
Code:
Range("B4").Offset(ActiveCell.Row + 1, ActiveCell.Column + i).Select

Comment selectionner cette cellule et les 6 cellules précédentes (en ligne) pour les mettre en forme,

pour les mettre en forme j'aurais fait :
Code:
With Selection.Font
        .Name = "Arial"
        .FontStyle = "Bold"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 16
End With

mais pour sélectionner je ne trouve pas.

D'avance merci.
Salut
Pas tout compris
Range("B4").Offset(ActiveCell.Row + 1, ActiveCell.Column + i).Select
ta sélection est sur cette cellule comme tu veut les 6 précédentes, essaie cette formule
PHP:
Range(Selection.Offset(0, -6).Address & ":" & Selection.Address).Select

juste un p'tit truc : si tes cellule n'ont pas subies des transformations particulière, ton code de mise en forme peut se réduire aux modifs voulues uniquement :
With Selection.Font
.Name = "Arial"
.FontStyle = "Bold"
.Size = 10
.ColorIndex = 16
End With

A+
 
Dernière édition:

Discussions similaires

Réponses
0
Affichages
185

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 595
Messages
2 090 094
Membres
104 374
dernier inscrit
cheick.coulibaly@dcsmali.