Cours VBA pour les nuls
Option Explicit
Sub ()
'Sélection de la cellule A10 et suppression des données
Range("A10").Select
Range("A10").Clear
'Sélection de la plage de cellule C1:F10 et suppression des données
Range("C1:F10").Select
Range("C1:F10").Clear
End Sub
Sub ()
'Sélectionner la feuille 2
Sheets("Sheet2").Select
'Sélectionner la plage A1:B10 et D10:E20
Range("A1:B10, D10:E20").Select
Range("A1:B10, D10:E20").Clear
End Sub
Sub ()
'Sélectionner la première feuille
Worksheets("Sheet1").Select
'Insertion des données dans les cellules A1, B1, C1 et D1
Range("A1").Value = "MANDAT"
Range("B1").Value = "AUM"
Range("C1").Value = "Count of mandat (Yesterday)"
Range("D1").Value = 10
End Sub
Sub ()
Copier/coller
Worksheets(3).Range("A2:B12").Copy Workbooks("Mandat.xlsm").Worksheets("Sheet1").Range("A2")
End Sub
Sub after()
'Passage par les variables
'Déclaration des variable sur la même ligne
Dim cel1 As Range, cel2 As Range
'Utilisation de l'instruction Set (attribution d'un objet a une variable)
Set cel1 = Sheets("Sheet3").Range("A2:B12")
Set cel2 = Workbooks("Mandat.xlsm").Worksheets("Sheet1").Range("A2")
'Copie / coller la plage de cellule
cel1.Copy cel2
End Sub
Sub ()
'Appliquer l'attribut gras
Range("A1").Font.Bold = True
'Appliquer l'attribut souligné
Range("A1").Font.Italic = True
'Appliquer la taille de la police 14
Range("A1").Font.Size = 14
'Appliquer la couleur bleu
Range("A1").Font.ColorIndex = 5
End Sub
Sub ()
'Instruction de bloc With...End with pour appliquer les attributs demandés en cellule B2
With Range("B1").Font
.Bold = True
.Italic = True
.Size = 14
.ColorIndex = 5
End With
End Sub
Sub ()
'Insérer un message pour l'utilisateur. La MsgBox donne seulement une information a l'utilisateur dans ce cas
MsgBox "The macro is going to start", vbInformation, "START"
End Sub
Sub ()
Dim name As String
'Récupérer le nom de l'utilisateur dans une variable via une InputBox
name = InputBox("Please, what is your name", "User", "User_1")
'Insérer le nom de l'utilisateur en cellule A20
Range("A20") = name
End Sub
Sub ()
'Déclaration de la variable Answer
Dim Answer As Integer
'Lorsque la MsgBox est de type Oui / Non, elle renvoie (parametre VBA) le chiffre 6 lorsque l'utilisateur clique sur Oui et le chiffre 6 pour Non
'Attention a ne pas oublier les parentheses pour la MsgBox
Answer = MsgBox("Do you want to start ?", vbYesNo, "To be sure")
'Utilisation de l'instruction IF sur une seule ligne
If Answer = 7 Then Exit Sub
If Answer = 6 Then MsgBox "So the macro is going to start...", vbInformation
End Sub
Sub ()
'Déclaration de la variable
Dim Count_Of_Man As Integer
'Utilisation de la propriete visible de l'objet feuille pour faire apparaitre la feuille 2
Worksheets("Sheet2").Visible = True
'Attribution a la variable Count_Of_Man du nombre de la ligne de la derniere cellule non vide de la colonne A de la feuille 1
Count_Of_Man = Worksheets("Sheet1").Range("A1").End(xlDown).Row
'Inscription de la variable, moins 1, dans la cellule D4
Cells(4, 4) = Count_Of_Man - 1
End Sub
Sub ()
'Déclaration des variables, AUM pour le montant de l'encours sous gestion et Com pour le commentaire
Dim AUM As Long, Com As String
'Sélection de la feuille 1
Worksheets("Sheet1").Select
'Insertion d'une colonne entre B et C
Columns("C").Insert
'Ajout du terme Ranking en cellule C1
Range("C1").Value = "Ranking"
'Attribution de la variable AUM
AUM = Range("B2")
'Utilisation de l'instruction IF pour gérer plusieurs conditions
'L encours sous gestion se trouve en colonne B, en cellule B2,
'et le commentaire est a inscrire en colonne C, en cellule C2
If AUM = 0 Then Com = "Category T"
If AUM > 0 And AUM < 1000000 Then Com = "Category E"
If AUM > 1000000 And AUM < 3000000 Then Com = "Category D"
If AUM > 3000000 And AUM < 5000000 Then Com = "Category C"
If AUM > 5000000 And AUM < 10000000 Then Com = "Category B"
If AUM > 10000000 Then Com = "Category A"
'Attribution du commentaire dans la cellule C2
Range("C2") = Com
End Sub
Sub ()
'Déclaration des variables sur deux lignes differentes. Même variable que la macro 11
Dim AUM As Long
Dim Com As String
'Attribution de la variable AUM égale a la valeur de la cellule B2
AUM = Cells(2, 2)
'Utilisation de l'instruction IF pour appliquer la couleur de la police en rouge
If AUM = 0 Then
Com = "Category T"
Cells(2, 3).Font.ColorIndex = 3
'Attribution du commentaire a la cellule C2
Cells(2, 3) = Com
End If
End Sub
Sub ()
'Déclaration des variables, AUM pour le montant de l'encours sous gestion et Com pour le commentaire
Dim AUM As Long, Com As String
'Attribution de la variable AUM à la valeur de la cellule B2
AUM = Range("B2")
'Utilisation de l'instruction IF avec plusieurs conditions
If AUM = 0 Then
Com = "Category T"
ElseIf AUM > 0 And AUM < 1000000 Then
Com = "Category E"
ElseIf AUM > 1000000 And AUM < 3000000 Then
Com = "Category D"
ElseIf AUM > 3000000 And AUM < 5000000 Then
Com = "Category C"
ElseIf AUM > 5000000 And AUM < 10000000 Then
Com = "Category B"
Else
Com = "Category A"
End If
'Attribution du commentaire a la cellule C2
Range("C2").Value = Com
End Sub
Sub ()
'Déclaration des variables, AUM pour le montant de l'encours sous gestion et Com pour le commentaire
Dim AUM As Long, Com As String
'Attribution de la variable AUM à la valeur de la cellule B2
AUM = Range("B2")
'Utilisation de l'instruction Select Case. Cette instructions est très adaptée pour gérer de nombreuses conditions.
Select Case AUM
Case Is = 0
Com = "Category T"
Case 0.01 To 999999.99
Com = "Category E"
Case 1000000 To 2999999.99
Com = "Category D"
Case 3000000 To 4999999.99
Com = "Category C"
Case 5000000 To 9999999.99
Com = "Category B"
Case Else
Com = "Category A"
End Select
'Attribution du commentaire a la cellule C2
Range("C2") = Com
End Sub
Sub ()
'Déclaration des variables, AUM pour le montant de l'encours sous gestion et Com pour le commentaire
'Et une variable pour la boucle
Dim AUM As Long, Com As String
Dim i_Loop As Integer
'Cette boucle va inscrire le commentaire pour l'ensemble des cellules de la colonne C
'Attention a la valeur du début de la boucle et de la valeur de la fin de la boucle.
'La méthode offset oblige un décalage
For i_Loop = 1 To 11
AUM = Range("B1").Offset(i_Loop, 0).Value
'Utilisation de l'instruction IF avec plusieurs conditions
If AUM = 0 Then
Com = "Category T"
ElseIf AUM > 0 And AUM < 1000000 Then
Com = "Category E"
ElseIf AUM > 1000000 And AUM < 3000000 Then
Com = "Category D"
ElseIf AUM > 3000000 And AUM < 5000000 Then
Com = "Category C"
ElseIf AUM > 5000000 And AUM < 10000000 Then
Com = "Category B"
Else
Com = "Category A"
End If
'Attribution du commentaire à la cellule de la colonne C
Range("C1").Offset(i_Loop, 0).Value = Com
Next i_Loop
End Sub
Sub ()
'Déclaration des variables. Une variable pour récupérer l'AUM a chaque ligne (AUM_By_Mandat)
'Et une autre variable pour sommer l'AUM total (Total_AUM)
'Enfin une variable pour incrémenter la boucle (Counter)
Dim AUM_By_Mandat As Long, Total_AUM As Long
Dim Counter As Byte
'Attribution du chiffre 0 a la variable Counter
Counter = 0
'Le bloc d'instruction se répéte tant que la cellule n'est pas vide
Do
'Attention a ne pas oublier d'incrémenter la variable Counter (compteur)
'Sinon la boucle ne pourra pas s'arrêter
Counter = Counter + 1
'Récupération de l'AUM pour chaque ligne
AUM_By_Mandat = Range("B1").Offset(Counter)
'Récupération de l'AUM total
Total_AUM = Total_AUM + AUM_By_Mandat
Loop While Range("B1").Offset(Counter) <> ""
'Attribution de la somme à la cellule B13
Range("B13") = Total_AUM
End Sub
Sub ()
'Déclaration des variables
Dim N_Row As Integer, i_Loop As Integer
'Détermination de la derniere ligne du tableau
N_Row = Sheets("Sheet1").Cells(1, 1).End(xlDown).Row
'Mise en place d'une boucle, en partant de la fin et en remontant d'une seule lighne (step -1)
For i_Loop = N_Row To 2 Step -1
'Utilisation d'une condition pour savoir si l'élément de la troisieme colonne est different de FR
If Cells(i_Loop, 3) <> "FR" Then
'Suppression de la ligne
Rows(i_Loop).Delete
End If
Next i_Loop
End Sub
Voici un exemple de cours sous VBA pour l'automatisation de plusieurs tâches sous excel.
Cordialement
Super résumé merci intelgo75.
A référencé
Bonjour,
Utilises le balises Code </> et là, je ne suis pas vraiment d'accord :
Sub Test()
'Sélectionner la première feuille <--- pas si elle à été déplacée dans la collection
Worksheets("Sheet1").Select
'là oui, ça sera toujours la première feuille qui sera sélectionnée quel que soit son nom !
Worksheets(1).Select
End Sub
je n'ai pas lu plus loin !
Bonjour intelgo75, Theze,
Il faut éviter les .select dans la mesure du possible,
Sub ()
'Sélection de la cellule A10 et suppression des données
Range("A10").Select
Range("A10").Clear
'Sélection de la plage de cellule C1:F10 et suppression des données
Range("C1:F10").Select
Range("C1:F10").Clear
End Sub
Tu peux écrire dirctement
Sub ()
'Sélection de la cellule A10 et suppression des données
Range("A10").Clear 'ou ClearContents si tu souhaites effacer les valeurs uniquement
'Sélection de la plage de cellule C1:F10 et suppression des données
Range("C1:F10").Clear
End Sub
idem pour
Sub ()
'Sélectionner la feuille 2
Sheets("Sheet2").Select
'Sélectionner la plage A1:B10 et D10:E20
Range("A1:B10, D10:E20").Select
Range("A1:B10, D10:E20").Clear
End Sub
Tu peux simplifier
Sub ()
'Sélectionner la feuille 2
Sheets("Sheet2").Range("A1:B10, D10:E20").Clear 'Sélectionner la plage A1:B10 et D10:E20
End Sub
où
with Sheets("Sheet2")
.Range("A1:B10, D10:E20").Clear 'Sélectionner la plage A1:B10 et D10:E20
end with
Cordialement,
bonjour
ce fil serait à déplacer dans l'autre section du forum https://forum.excel-pratique.com/viewforum.php?f=10
amitiés et bonne année à tous