[vba excel] aide aux débutants, quelques morceaux de codes

[vba excel] aide aux débutants, quelques morceaux de codes

Introduction

Suite à de nombreuses questions posées sur le forum et relatives à VBA Excel, j'ai décidé de créer ce petit tutorial qui aidera les débutants à de familiariser avec VBA.
Les quelques bases nécessaires au travail sous Excel seront réunies dans ce tutorial, qui n'a pas plus d'ambition que de fournir un point de départ.
Les différentes méthodes décrites par la suite ne sont évidemment pas les seules possibles, ni même les meilleures, mais elles fonctionnent.

les bases

'sélection d'une feuille

Sheets("NomDeLaFeuille").Select

'sélection 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 posées, voyons comment parcourir le fichier.

Parcourir un 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 première ligne vide

'Parcourir les colonnes

While Cells(1, i) <> ""
    i = i + 1
Wend

'permet de trouver la lettre associée 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 première colonne vide

Maintenant que nous savons parcourir, voyons comment tirer des formules, adapter un graphique.

tirer des formules, adapter un graphique

Tirer les formules

Range("A3:Z3").Select  'sélection 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"
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 données et de les associer au graphique

Formats

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

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

Ce code permet de mettre des bordures intérieures et extérieures sur un tableau. Le 'i' permet de se placer sur la dernière ligne du tableau.

Récupérer une valeur sur une autre feuille

nb = Range("B" & i & "").Value
Sheets("nb rebut").Select
Range("C" & j & "").Value = nb

Insérer ou effacer une ligne

Rows("4:4").Select
Selection.Delete Shift:=xlUp ' pour supprimer

Rows("5:5").Select
Selection.Insert Shift:=xlDown ' pour insérer

Voila, je l'espère, quelques morceaux de codes qui pourront vous aider. Je ne suis pas un pro en VBa, mais j'ai du travailler un peu dessus, et j'ai vu pas mal de questions qui trouveront des réponses dans ces quelques lignes. Ce tutorial est loin d'être exhaustif, les méthodes utilisées ne sont peut être pas toujours les bonnes, mais je suis à l'écoute de toutes autres manières de procéder !

Bonne programmation

Tof008

A voir également
Ce document intitulé « [vba excel] aide aux débutants, quelques morceaux de codes » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous