terme VBA indiquant le contenu d'une cellule

O

Oliv

Guest
Bonjour à tous,

QQN d'entre vous sait il comment on designe le contenu d'une cellule sous VBA.
par exemple, je veux créer un programme qui me permet d'effacer le contenu de certaines cellules si une cellule précise contient une chaîne de caractères prédéfinie.

if worksheets('invoice').cells(NumLigne2, 5) contient anth then ...

Merci
 

_Thierry

XLDnaute Barbatruc
Repose en paix
bonjour Hervé, Didier, Oliv, le Forum

J'ai l'impression qu'Oliv est assez débutant en VBA, autant lui donner des bases claires et précises avec les structures fondamentales de programmation en VBA :

Ici ce serait pour le cas où tu veuilles chercher 'Toto' dans le contenu de la Cellule 'E5' de la Feuille 'Invoice' :

Option Explicit      'Oblige les décalartion de Variables
Option Compare Text  'Force VBA à comparer MAJ et Min dans String cherchée

Sub TestUniqueCellule()
Dim MaCelluleSource As Range 'Déclaration de Variable Type Object Range
Dim MaCelluleCible As Range  'Idem
Dim TextContenu As String    'Déclaration de Variable Type Chaine de Caractères

TextContenu = 'Toto'
'Initialisation de Variable

Set MaCelluleSource = Worksheets('Invoice').Range('E5')        'Initialisation
Set MaCelluleCible = Worksheets('UneAutreFeuille').Range('A1') 'Initialisation


   
If InStr(MaCelluleSource, TextContenu) <> 0 Then 'Condition
&nbsp; &nbsp; &nbsp; &nbsp; MaCelluleCible = 'Toto est bien là'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
'Si Vrai
&nbsp; &nbsp;
Else
&nbsp; &nbsp; &nbsp; &nbsp; MaCelluleCible = 'Toto n
'existe pas'&nbsp; &nbsp; &nbsp; &nbsp; 'Si Faux
&nbsp; &nbsp;
End If

End Sub

Ce code retournera en Feuille 'UneAutreFeuille' sur la cellule 'A1' la Valeur de ma condition ...


Maintenant plus compliqué, mais très souvent utilisé, on veut savoir si 'Toto' est contenu quelque part dans la chaîne de caraactères d'une cellule au sein d'une plage contenant plusieurs de Cellules...

Option Explicit&nbsp; &nbsp; &nbsp; 'Oblige les décalartion de Variables
Option Compare Text&nbsp; 'Force VBA à comparer MAJ et Min dans String cherchée

Sub TestPlageDeCellules()
Dim MaPlageSource As Range
Dim ChaqueCelluleSource As Range
Dim MaCelluleCible As Range
Dim TextContenu As String

TextContenu = 'Toto'

Set MaPlageSource = Worksheets('Invoice').Range('E1:E100')
Set MaCelluleCible = Worksheets('UneAutreFeuille').Range('A1')


&nbsp; &nbsp;
For Each ChaqueCelluleSource In MaPlageSource 'Boucle Pour Chaque Cellule
&nbsp; &nbsp; &nbsp; &nbsp;
If InStr(ChaqueCelluleSource, TextContenu) <> 0 Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MaCelluleCible = 'Toto est au minimum dans ' & ChaqueCelluleSource.Address
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Exit For 'Si Vrai on Sort de La Boucle
&nbsp; &nbsp; &nbsp; &nbsp;
Else
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MaCelluleCible = 'Toto n
'existe pas'
&nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp;
Next 'Boucle Suivante jusqu'à la dernière cellule de la Plage
End Sub


Ce peut parître bien compliqué, mais si on analyse bien c'est assez rudimentaire en fait.

Bonne Journée
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
313 030
Messages
2 094 572
Membres
106 054
dernier inscrit
Mohajer