Microsoft 365 VBA - Tableau

JOMOR

XLDnaute Nouveau
Bonjour à tous,
J'ai une base de données et actuellement je parviens à insérer les données dans un tableau au moyen d'une formule pour chaque case du tableau.
Je souhaiterais faire la même chose, mais VBA. Quelqu'un peut-il m'aider svp.
En plus chaque case complétée dans le tableau prend une couleur suivant l'objet.
Je joins le fichier
Merci d'avance
 

Pièces jointes

  • Tableau 1.xlsm
    18.3 KB · Affichages: 9
Solution
Il suffit de rajouter :
VB:
Range("B5:M" & DL).Interior.Color = xlNone
et
Select Case tablo(i, 3)
   Case "Maison":      Cells(Ligne, Colonne).Interior.Color = RGB(255, 192, 0)
   Case "Ferme":       Cells(Ligne, Colonne).Interior.Color = RGB(255, 255, 0)
   Case "Building":    Cells(Ligne, Colonne).Interior.Color = RGB(197, 224, 178)
End Select

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Morval, et bienvenu sur XLD,
Comment comptez vous les dates ?
2018/2019 : 1 janvier 2018 au 31 décembre 2019
2019/2020 : 1 janvier 2019 au 31 décembre 2020
d'où un souci de recouvrement, ou :
2018/2019 : 1 janvier 2018 au 31 décembre 2018
2019/2020 : 1 janvier 2019 au 31 décembre 2019
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Morval,
Un essai en PJ. Cette macro s'exécute automatiquement lorsqu'on sélectionne la feuille "Sol", avec :
Code:
Sub Worksheet_Activate()
    Dim tablo, Ligne%, Colonne%, i%, DL%
    On Error GoTo Fin
    DL = [A65500].End(xlUp).Row
    Set Plage = Range("A1:A" & DL)
    Range("B5:M" & DL).ClearContents
    Application.ScreenUpdating = False
    tablo = Sheets("Base").[A1].CurrentRegion
    For i = 2 To UBound(tablo)
        Ligne = Application.Match(tablo(i, 1), Plage, 0)
        Colonne = Application.Match(tablo(i, 2), [3:3], 0)
        Cells(Ligne, Colonne) = tablo(i, 3)
    Next i
Exit Sub
Fin:
MsgBox " Non trouvé : " & tablo(i, 1) & " - " & tablo(i, 2) & " - " & tablo(i, 3)
End Sub
A noter que le lieu "Zimont" dans votre fichier est présent deux fois, mais la macro ne le traite qu'une seule fois.
est ce une erreur ou doit on dupliquer cette ligne ?
 

Pièces jointes

  • Tableau 1 (1).xlsm
    27.4 KB · Affichages: 2

JOMOR

XLDnaute Nouveau
Un grand merci, oui j'ai remarqué que je devais enlever le deuxième "Zimont".
C'est vraiment ce que je voulais.
Si j'ose abuser, est-il possible de mettre les couleurs autrement que par mise en forme conditionnelle.
Merci d'avance pour vos réponses.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Il suffit de rajouter :
VB:
Range("B5:M" & DL).Interior.Color = xlNone
et
Select Case tablo(i, 3)
   Case "Maison":      Cells(Ligne, Colonne).Interior.Color = RGB(255, 192, 0)
   Case "Ferme":       Cells(Ligne, Colonne).Interior.Color = RGB(255, 255, 0)
   Case "Building":    Cells(Ligne, Colonne).Interior.Color = RGB(197, 224, 178)
End Select
 

Pièces jointes

  • Tableau 1 (V2).xlsm
    27.8 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Jomar,
On peut tout modifié. En PJ, qui est un exemple, j'ai joué sur les couleurs et mises en forme avec :
VB:
'Cells(Ligne, Colonne).Interior.Color = RGB(255, 192, 0)    'Couleur de fond de la cellule
'Cells(Ligne, Colonne).Font.Color = RGB(255, 0, 0)          'Couleur du texte
'Cells(Ligne, Colonne).Font.Italic = True                   'Italigne ( False=normal)
'Cells(Ligne, Colonne).Font.Underline = True                'Souligné
'Cells(Ligne, Colonne).Font.Bold = True                     'Gras
A vous de modifier le code à votre sauce. :)
 

Pièces jointes

  • Tableau 1 (V3).xlsm
    28.5 KB · Affichages: 2

Discussions similaires

Réponses
8
Affichages
440

Statistiques des forums

Discussions
312 215
Messages
2 086 319
Membres
103 177
dernier inscrit
grizly