CODE VBA
Transcript of CODE VBA
1
mmencons par les bases :
Selection d'une feuille Sheets("NomDeLaFeuille").Select Selection d'une cellule Range("A1).Select Ouverture d'un autre fichier Excel ChDir "Chemin du repertoire du fichier" Workbooks.Open Filename:= _ " Chemin du repertoire du fichier\fichier.xls " Fermeture d'un fichier ActiveWindow.Close pour fermer le fichier en cours Ou Workbooks.Close Filename:= _ " Chemin du repertoire du fichier\fichier.xls "
Maintenant que les bases sont poses, voyons comment parcourir le fichier :
Parcourir les lignes i=1 Sheets("Base").Select While Not Range("A" & i & "").Value = "" i=i+1 Wend => Permet de se placer sur la premiere ligne vide
2
Parcourir les colonnes
While Cells(1, i) "" i=i+1 Wend 'permet de trouver la lettre associe au chiffre pour la colonne NumCol = Cells(1, i).Column lettre = IIf(NumCol > 26, Chr(64 + NumCol \ 26) & Chr(64 + NumCol Mod 26), Chr(64 + NumCol)) => Se place sur la premiere colonne vide
Maintenant que nous savons parcourir, voyons comment tirer des formules, adapter un graphique?
Tirer les formules
Range("A3:Z3").Select ?selection de la ligne contenant la formule Selection.AutoFill Destination:=Range("A3:Z" & i - 1 & ""), Type:=xlFillDefault Range("A3:Z" & i - 1 & "").Select
Adapter un graphique ActiveSheet.ChartObjects("Graphique 3").Activate ActiveChart.SeriesCollection(3).Select ActiveChart.SeriesCollection(3).XValues = "='% Nom classeur?!R4C1:R" & i & "C1" ActiveChart.SeriesCollection(1).XValues = "='% Nom classeur?!R4C1:R" & i & "C1"
3
ActiveChart.SeriesCollection(2).XValues = "='% Nom classeur?!R4C1:R" & i & "C1" ActiveChart.SeriesCollection(3).Values = "='% Nom classeur?!R4C5:R" & i & "C5" ActiveChart.SeriesCollection(2).Select ActiveChart.SeriesCollection(2).Values = "='% Nom classeur?!R4C7:R" & i & "C7" ActiveChart.SeriesCollection(1).Select ActiveChart.SeriesCollection(1).Values = "='% Nom classeur?!R4C3:R" & i & "C3"
Cela permet de prendre en compte toutes les donnes et de les associer au graphique
Adapter la taille des cellules 'redimensionnement des cellules Rows("2:" & i & "").Select Selection.RowHeight = 25 Range("A1:H1").Select
Changer les bordures ' on s'occupe des bordures du tableau Range("B3:H" & i & "").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With
4
With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With
5
Ce code permet de mettre des bordures interieures et exterieures sur un tableau. Le 'i' permet de se placer sur la derniere ligne du tableau.
Recuperer une valeur sur une autre feuille
nb = Range("B" & i & "").Value Sheets("nb rebut").Select Range("C" & j & "").Value = nb
Insrer ou effacer une ligne Rows("4:4").Select Selection.Delete Shift:=xlUp ' pour supprimer
Rows("5:5").Select Selection.Insert Shift:=xlDown ' pour insrer