Excel / Construction tableau dans nouvelle feuille VBA
Résolu
CamdenTown
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
CamdenTown Messages postés 37 Date d'inscription Statut Membre Dernière intervention -
CamdenTown Messages postés 37 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous !
Voila j'aimerai svp a l'aide d'un VBA ouvrir une nouvelle feuille Excel ou se construit un tableau pre-parametre a ma guise.
Alors apres des recherches sur le net et un peu de lecture j'ai reussi a compiler un code pour l'ouverture de feuille, un code pour la construction du tableau et un code pour la finition du tableau.
La bonne nouvelle c'est que tout fonctionne mais separement et je pense qu'il manque la liaison entre ces codes la... Enfin bref j'espere que je me suis bien exprimer et de l'aide serait la bienvenu.
Voici le VBA et merci d'avance :
' Creation nouvelle feuille
Dim Feuille As Worksheet ' Une référence à la feuille nouvellement créée
Set Feuille = ThisWorkbook.Worksheets.Add ' La référence est posée
Sheet.Name = "GLOBAL" ' Le nom d'onglet de la nouvelle feuille est posé.
' bordure du tableau résultat
'
Dim VAR As Integer
VAR = Cells(2, 1).Value
' la ligne ou s'arretra le tableau
Value = 50
' Tableau demarre de la case A2 jusqua D2
Range("A2:D" & Value).Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
' Aplliquer ce code couleur a ces cellules
With ActiveSheet.Range("A1:D1").Interior.ColorIndex = 1
' Appliquer police taille sur cellule
With ActiveSheet.Range("A1:D1")
'texte cellule
.Value = "" ' nom de cellule a ajouter
'Caracteres 1 longueur 4: New_
With .Characters(start:=1, Length:=4).Font
.Name = "Century Gothic"
.FontStyle = "Bold Italic"
.Size = 15
.ColorIndex = 2
End With
End With
With ActiveSheet.Range("A2:D50")
'texte cellule
.Value = ""
'Caracteres 1 longueur 4: New_
With .Characters(start:=1, Length:=4).Font
.Name = "Century Gothic"
.FontStyle = "normal"
.Size = 8
.ColorIndex = 1
End With
End With
End With
Voila j'aimerai svp a l'aide d'un VBA ouvrir une nouvelle feuille Excel ou se construit un tableau pre-parametre a ma guise.
Alors apres des recherches sur le net et un peu de lecture j'ai reussi a compiler un code pour l'ouverture de feuille, un code pour la construction du tableau et un code pour la finition du tableau.
La bonne nouvelle c'est que tout fonctionne mais separement et je pense qu'il manque la liaison entre ces codes la... Enfin bref j'espere que je me suis bien exprimer et de l'aide serait la bienvenu.
Voici le VBA et merci d'avance :
' Creation nouvelle feuille
Dim Feuille As Worksheet ' Une référence à la feuille nouvellement créée
Set Feuille = ThisWorkbook.Worksheets.Add ' La référence est posée
Sheet.Name = "GLOBAL" ' Le nom d'onglet de la nouvelle feuille est posé.
' bordure du tableau résultat
'
Dim VAR As Integer
VAR = Cells(2, 1).Value
' la ligne ou s'arretra le tableau
Value = 50
' Tableau demarre de la case A2 jusqua D2
Range("A2:D" & Value).Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
' Aplliquer ce code couleur a ces cellules
With ActiveSheet.Range("A1:D1").Interior.ColorIndex = 1
' Appliquer police taille sur cellule
With ActiveSheet.Range("A1:D1")
'texte cellule
.Value = "" ' nom de cellule a ajouter
'Caracteres 1 longueur 4: New_
With .Characters(start:=1, Length:=4).Font
.Name = "Century Gothic"
.FontStyle = "Bold Italic"
.Size = 15
.ColorIndex = 2
End With
End With
With ActiveSheet.Range("A2:D50")
'texte cellule
.Value = ""
'Caracteres 1 longueur 4: New_
With .Characters(start:=1, Length:=4).Font
.Name = "Century Gothic"
.FontStyle = "normal"
.Size = 8
.ColorIndex = 1
End With
End With
End With
A voir également:
- Excel / Construction tableau dans nouvelle feuille VBA
- Darkino nouvelle adresse - Guide
- Tableau word - Guide
- Trier un tableau excel - Guide
- Imprimer tableau excel sur une page - Guide
- Liste déroulante excel - Guide
1 réponse
Bonjour,
Pour "lier" tes 2 codes, je te conseille simplement de faire commencer le second (mise en place du tableau) par la sélection de la nouvelle feuille créée :
Sheets("GLOBAL").select
Avec cette ligne entre tes deux codes ça devrait aller. De manière générale, il faut bien penser à vérifier les références aux feuilles qu'utilise ton code. Tu vas souvent trouver des références par ordre d'apparition des feuilles du type : Sheets(1).select => cela sélectionne la 1ère feuille, donc peut devenir erroné s'il y a une création de feuille auparavant.
En espérant que cela suffise ;)
Pour "lier" tes 2 codes, je te conseille simplement de faire commencer le second (mise en place du tableau) par la sélection de la nouvelle feuille créée :
Sheets("GLOBAL").select
Avec cette ligne entre tes deux codes ça devrait aller. De manière générale, il faut bien penser à vérifier les références aux feuilles qu'utilise ton code. Tu vas souvent trouver des références par ordre d'apparition des feuilles du type : Sheets(1).select => cela sélectionne la 1ère feuille, donc peut devenir erroné s'il y a une création de feuille auparavant.
En espérant que cela suffise ;)
si c'est juste un inversement de l'rodre des des lignes, tu veux bien me le reecrire stp si ca se trouve on s'est mal compris.
Merci !
Sheet.Name = "GLOBAL" ' Le nom d'onglet de la nouvelle feuille est posé.
par
Feuille.Name = "GLOBAL"
Merci beaucoup Theo.R
Bonne semaine.