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

Microsoft 365 VBA - Tableau

  • Initiateur de la discussion Initiateur de la discussion JOMOR
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
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
 
Re bonjour, en fait les années 2019/2020 - 2020/2021 etc... non pas vraiment d'importance au niveau des dates.
Ces champs peuvent être remplacés par des noms, comme "Victor Emile Sophie etc..
Bien à vous
 
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

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.
 
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

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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