Cours VBA pour les nuls

Y compris Power BI, Power Query et toute autre question en lien avec Excel
i
intelgo75
Nouveau venu
Nouveau venu
Messages : 1
Appréciation reçue : 1
Inscrit le : 10 janvier 2019
Version d'Excel : 2018

Message par intelgo75 » 10 janvier 2019, 12:32

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
Modifié en dernier par intelgo75 le 10 janvier 2019, 12:38, modifié 1 fois.
1 membre du forum aime ce message.
Avatar du membre
Darkos
Nouveau venu
Nouveau venu
Messages : 7
Inscrit le : 15 janvier 2017
Version d'Excel : 2007 FR

Message par Darkos » 10 janvier 2019, 12:35

Super résumé merci intelgo75.

A référencé :)
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 3'572
Appréciations reçues : 252
Inscrit le : 26 janvier 2011
Version d'Excel : 2007

Message par Theze » 10 janvier 2019, 13:20

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 !
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
Avatar du membre
xorsankukai
Membre impliqué
Membre impliqué
Messages : 1'511
Appréciations reçues : 146
Inscrit le : 7 octobre 2014
Version d'Excel : 2010 FR

Message par xorsankukai » 10 janvier 2019, 13:29

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
with Sheets("Sheet2")
.Range("A1:B10, D10:E20").Clear    'Sélectionner la plage A1:B10 et D10:E20
end with
Cordialement,
xorsankukai

La connaissance, c’est partager le savoir qui nous fait grandir.
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'659
Appréciations reçues : 249
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 10 janvier 2019, 14:48

bonjour

ce fil serait à déplacer dans l'autre section du forum viewforum.php?f=10

amitiés et bonne année à tous
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message