Excel / Construction tableau dans nouvelle feuille VBA

Résolu/Fermé
CamdenTown Messages postés 37 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 6 février 2017 - Modifié par CamdenTown le 8/01/2016 à 11:30
CamdenTown Messages postés 37 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 6 février 2017 - 18 janv. 2016 à 12:29
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
A voir également:

1 réponse

Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
8 janv. 2016 à 11:57
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 ;)
-1
CamdenTown Messages postés 37 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 6 février 2017
8 janv. 2016 à 16:28
Pardon je viens d'essayer mais ca ne fonctionne toujours pas :/
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 !
0
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31 > CamdenTown Messages postés 37 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 6 février 2017
11 janv. 2016 à 12:56
En fait dans ton code il y a une erreur simple au début sur le changement du nom de la feuille, il faut remplacer :

Sheet.Name = "GLOBAL" ' Le nom d'onglet de la nouvelle feuille est posé.


par


Feuille.Name = "GLOBAL"
0
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
11 janv. 2016 à 12:57
De manière générale quand tu lances ta macro et qu'il y a un problème, essaie l'option "Débogage". Elle t'indiquera sur quelle ligne du code la macro a planté ;)
0
CamdenTown Messages postés 37 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 6 février 2017
18 janv. 2016 à 12:29
Tres bien !
Merci beaucoup Theo.R

Bonne semaine.
0