CodeS-SourceS
Rechercher un code, un tuto, une réponse

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

Décembre 2017


[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
Publié par tof008.
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.
Manipulations de fichier avec fso
Les nouveaux opérateurs logiques en vb2005