Vous êtes sur la page 1sur 14

III condition

Exercice 7

Sub MettreEnFormeCellulesNegativesEnRouge()

Dim plage As Range

‘ Sélection de la plage à parcourir

Set plage = ThisWorkbook.Sheets(« Feuil1 »).Range(« A1 :D10 ») ‘ Modifier « Feuil1 » et la plage


selon tes besoins

‘ Parcourir chaque cellule dans la plage

For Each cell In plage

If IsNumeric(cell.Value) And cell.Value < 0 Then

Cell.Font.Color = RGB(255, 0, 0) ‘ Mettre en rouge la police des cellules contenant des valeurs
négatives

End If

Next cell

End Sub

Exercice 8

Sub CalculerSommeLignes()

Dim feuille As Worksheet

Dim plageDonnees As Range

Dim ligne As Range

Dim somme As Double

‘ Spécifier la feuille de calcul et la plage de données (modifier selon tes besoins)

Set feuille = ThisWorkbook.Sheets(« Feuil1 »)

Set plageDonnees = feuille.Range(« A1 :C10 ») ‘ Modifier la plage selon tes données


For Each ligne In plageDonnees.Rows

‘ Réinitialiser la somme pour chaque nouvelle ligne

Somme = 0

‘ Calculer la somme des valeurs dans la ligne

For Each cell In ligne.Cells

If IsNumeric(cell.Value) Then

Somme = somme + cell.Value

End If

Next cell

‘ Afficher la somme dans une colonne adjacente (Dans cet exemple, on affiche dans la colonne D)

Ligne.Cells(1, plageDonnees.Columns.Count + 1).Value = somme

Next ligne

End Sub

Iv procédure et fonction

1.

Function SommeDeuxNombres(nombre1 As Double, nombre2 As Double) As Double

SommeDeuxNombres = nombre1 + nombre2

End Function

Pour utiliser cette fonction, tu peux l’appeler depuis une autre procédure en passant deux nombres
comme arguments et récupérer le résultat :
Sub TestSomme()

Dim resultat As Double

Dim a As Double

Dim b As Double

A=5

B=3

Resultat = SommeDeuxNombres(a, b)

MsgBox « La somme de « & a & « et « & b & « est : « & resultat

End Sub

2.

Sub MessageBienvenuePersonnalise()

Dim nomUtilisateur As String

Dim message As String

‘ Demander à l’utilisateur de saisir son nom

nomUtilisateur = InputBox(« Veuillez saisir votre nom : »)

‘ Construire le message de bienvenue personnalisé

If nomUtilisateur <> « stone » Then

Message = « Salutation »

Else

Message = « Bonjour «

End If

‘ Afficher le message de bienvenue dans une boîte de dialogue avec le titre « Salutation ! »
MsgBox message, vbInformation, « Salutation ! »

End Sub

Function CalculerMoyennePlage(plage As Range) As Double

Dim cell As Range

Dim somme As Double

Dim count As Integer

Somme = 0

Count = 0

‘ Parcourir chaque cellule de la plage spécifiée

For Each cell In plage

If IsNumeric(cell.Value) Then

Somme = somme + cell.Value

Count = count + 1

End If

Next cell

‘ Calculer la moyenne si des valeurs numériques ont été trouvées

If count > 0 Then

CalculerMoyennePlage = somme / count

Else

CalculerMoyennePlage = 0 ‘ Retourner 0 si aucune valeur numérique n’a été trouvée

End If

End Function
Cette fonction CalculerMoyennePlage prend une plage de cellules en paramètre, parcourt chaque
cellule de la plage, calcule la somme des valeurs numériques et ensuite retourne la moyenne de ces
valeurs.

Voici un exemple pour utiliser cette fonction dans une procédure :

Sub TestCalculMoyenne()

Dim plageDonnees As Range

Dim moyenne As Double

‘ Spécifier la plage de données à traiter

Set plageDonnees = ThisWorkbook.Sheets(« Feuil1 »).Range(« A1 :A10 ») ‘ Modifier la plage selon


tes données

‘ Calculer la moyenne des valeurs dans la plage spécifiée

Moyenne = CalculerMoyennePlage(plageDonnees)

MsgBox « La moyenne des valeurs de la plage est : « & moyenne

End Sub

4.

Sub CopierCollerColonnes(plageACopier As Range, plageAColler As Range)

If Not plageACopier Is Nothing And Not plageAColler Is Nothing Then

plageACopier.Copy Destination :=plageAColler

End If
End Sub

Cette procédure CopierCollerColonnes prend deux paramètres : plageACopier pour spécifier la plage
de cellules que tu veux copier et plageAColler pour indiquer où tu veux coller ces valeurs. Il utilise la
méthode .Copy pour copier les valeurs de la première plage vers la deuxième.

Voici un exemple pour utiliser cette procédure dans une procédure de test :

Sub TestCopierColler()

Dim plageSource As Range

Dim plageDestination As Range

‘ Spécifier la plage source et la plage de destination

Set plageSource = ThisWorkbook.Sheets(« Feuil1 »).Range(« A1 :A10 ») ‘ Changer la plage source


selon tes données

Set plageDestination = ThisWorkbook.Sheets(« Feuil1 »).Range(« C1 :C10 ») ‘ Changer la plage de


destination selon tes besoins

‘ Appeler la procédure CopierCollerColonnes pour copier les valeurs de la colonne A vers la colonne
C

CopierCollerColonnes plageSource, plageDestination

MsgBox « Les valeurs ont été copiées avec succès ! »

End Sub

5.

Function VerifierPairOuImpair(nombre As Integer) As String

If nombre Mod 2 = 0 Then


VerifierPairOuImpair = « Le nombre « & nombre & « est pair. »

Else

VerifierPairOuImpair = « Le nombre « & nombre & « est impair. »

End If

End Function

Dans cette fonction VerifierPairOuImpair, on vérifie si le nombre passé en paramètre est pair ou
impair en utilisant l’opérateur Mod pour vérifier le reste de la division par 2. Ensuite, la fonction
renvoie un message indiquant si le nombre est pair ou impair.

Voici un exemple pour utiliser cette fonction dans une procédure de test :

Sub TestVerifPairOuImpair()

Dim monNombre As Integer

Dim message As String

monNombre = 7 ‘ Changer le nombre ici pour tester

‘ Appeler la fonction VerifierPairOuImpair pour vérifier si le nombre est pair ou impair

Message = VerifierPairOuImpair(monNombre)

MsgBox message

End Sub

6.
Function VerifierPairOuImpair(nombre As Integer) As String

If nombre Mod 2 = 0 Then

VerifierPairOuImpair = « Le nombre « & nombre & « est pair. »

Else

VerifierPairOuImpair = « Le nombre « & nombre & « est impair. »

End If

End Function

Dans cette fonction VerifierPairOuImpair, on vérifie si le nombre passé en paramètre est pair ou
impair en utilisant l’opérateur Mod pour vérifier le reste de la division par 2. Ensuite, la fonction
renvoie un message indiquant si le nombre est pair ou impair.

Voici un exemple pour utiliser cette fonction dans une procédure de test :

Sub TestVerifPairOuImpair()

Dim monNombre As Integer

Dim message As String

monNombre = 7 ‘ Changer le nombre ici pour tester

‘ Appeler la fonction VerifierPairOuImpair pour vérifier si le nombre est pair ou impair

Message = VerifierPairOuImpair(monNombre)

MsgBox message

End Sub

7.

Function RechercherOccurences(texteRecherche As String, colonneRecherche As Range) As Integer


Dim cell As Range

Dim occurrences As Integer

Occurrences = 0

For Each cell In colonneRecherche

If InStr(1, LCase(cell.Value), LCase(texteRecherche), vbTextCompare) > 0 Then

Occurrences = occurrences + 1

End If

Next cell

RechercherOccurences = occurrences

End Function

Sub TestRechercherOccurences()

Dim texteRecherche As String

Dim colonneRecherche As Range

Dim nbOccurences As Integer

texteRecherche = « exemple » ‘ Texte à rechercher

Set colonneRecherche = ThisWorkbook.Sheets(« Feuil1 »).Range(« A1 :A10 ») ‘ Colonne de


recherche

nbOccurences = RechercherOccurences(texteRecherche, colonneRecherche)

MsgBox « Le texte ‘ » & texteRecherche & « ‘ a été trouvé « & nbOccurences & « fois dans la
colonne. »

End Sub
8.

Function CalculerProduitPlage(plage As Range) As Double

Dim cell As Range

Dim produit As Double

Produit = 1 ‘ Initialiser le produit à 1

‘ Parcourir chaque cellule de la plage spécifiée

For Each cell In plage

If IsNumeric(cell.Value) Then

Produit = produit * cell.Value

End If

Next cell

‘ Retourner le produit des valeurs

CalculerProduitPlage = produit

End Function

9.

Function ConvertirCelsiusEnFahrenheit(tempCelsius As Double) As Double

‘ Formule de conversion de Celsius en Fahrenheit : °F = (°C * 9/5) + 32

ConvertirCelsiusEnFahrenheit = (tempCelsius * 9 / 5) + 32

End Function
10 .

Sub TrierColonneOrdreCroissant()

Dim plageATrier As Range

‘ Spécifier la plage de données à trier (par exemple, colonne A de la Feuil1)

Set plageATrier = ThisWorkbook.Sheets(« Feuil1 »).Range(« A1 :A10 ») ‘ Modifier la plage selon tes
données

‘ Trier la plage en ordre croissant

plageATrier.Sort Key1 :=plageATrier, Order1 :=xlAscending, Header :=xlNo

MsgBox « La colonne a été triée en ordre croissant avec succès ! »

End Sub

1. Chaines de caractères

Sub RemplacerTexteDansColonne()

Dim texteAChercher As String

Dim texteAInserer As String

Dim plageDeRecherche As Range

Dim cellule As Range

‘ Demander à l’utilisateur le texte à rechercher

texteAChercher = InputBox(« Entrez le texte à rechercher : », « Texte à rechercher »)


‘ Demander à l’utilisateur le texte de remplacement

texteAInserer = InputBox(« Entrez le texte de remplacement : », « Texte de remplacement »)

‘ Spécifier la plage où rechercher le texte (par exemple, colonne A de la Feuil1)

Set plageDeRecherche = ThisWorkbook.Sheets(« Feuil1 »).Range(« A1 :A10 ») ‘ Modifier la plage


selon tes données

‘ Parcourir chaque cellule de la plage de recherche

For Each cellule In plageDeRecherche

If cellule.Value = texteAChercher Then

Cellule.Value = texteAInserer

End If

Next cellule

MsgBox « Le texte ‘ » & texteAChercher & « ‘ a été remplacé par ‘ » & texteAInserer & « ‘ avec
succès ! »

End Sub

Exercice 6 du IV

Sub RemplirColonneAvecValeursAleatoires()

Dim ws As Worksheet

Dim rng As Range

Dim cell As Range

Dim i As Integer

‘ Définir la feuille de calcul sur laquelle travailler

Set ws = ThisWorkbook.Sheets(« Feuille1 ») ‘ Remplacez « Feuille1 » par le nom de votre feuille

‘ Définir la plage de cellules à remplir


Set rng = ws.Range(« A1 :A10 ») ‘ Remplacez « A1 :A10 » par la plage de cellules que vous souhaitez
remplir

‘ Remplir chaque cellule de la plage avec une valeur aléatoire entre 1 et 100

For Each cell In rng

Cell.Value = Int((100 – 1 + 1) * Rnd + 1)

Next cell

End Sub

Exercice 9 correction

Function ConvertirCelsiusEnFahrenheit(tempCelsius As Double) As Double

ConvertirCelsiusEnFahrenheit = (tempCelsius * 9 / 5) + 32

End Function

Sub TesterConversionTemperature()

Dim tempCelsius As Double

Dim tempFahrenheit As Double

tempCelsius = 20 ‘ Température en degrés Celsius à convertir

tempFahrenheit = ConvertirCelsiusEnFahrenheit(tempCelsius)

MsgBox tempCelsius & « degrés Celsius équivaut à « & tempFahrenheit & « degrés Fahrenheit. »

End Sub

Vous aimerez peut-être aussi