Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment dire contient, ne contient pas, commence, ne commence pas en VBA?

2 réponses
Avatar
Gilles_PoP
bonjour,

je cherche à supprimer les cellules dans la colonne A qui commence par
713 et une autre qui ne commence par par 715.


idem pour les cellules contenant "714A", idem pour ne contenant pas "DE54"

j'étais parti avec :

range("A1").select
do while activecell.value<>""
if activecell.value like "715" then
Selection.EntireRow.Delete

else

activecell.offset(1,0).select
end if
loop


mais cela ne marche pas.

merci de votre aide ,

Gilles

2 réponses

Avatar
Nicolas B.
Salut Gilles,

Utilise la fonction Left pour tester les trois premiers caractères :
if left(activecell.value,3) = "713" then...
if not left(activecell.value,3) = "715" then...


A+
Nicolas B.

bonjour,

je cherche à supprimer les cellules dans la colonne A qui commence par
713 et une autre qui ne commence par par 715.


idem pour les cellules contenant "714A", idem pour ne contenant pas "DE54"

j'étais parti avec :

range("A1").select
do while activecell.value<>""
if activecell.value like "715" then
Selection.EntireRow.Delete

else

activecell.offset(1,0).select
end if
loop


mais cela ne marche pas.

merci de votre aide ,

Gilles


Avatar
anomymousA
bonjour,

quelques petites procédures pour reproduire les critères "contient, contient
pas....." du filtre Personnalisé. Dans ce qui suit , on suppose que
searchrange est une plage de cellules que tu as définies.Colonne est le N°
d'une colonne où tu veux voir s'afficher l'indication que le programme a
trouvé des items ayant répondu aux critères.

A+

Sub egala(valeur, colonne)

For Each c2 In searchrange
If CStr(c2.Value) = valeur Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If
Next

End Sub
Sub differentde(valeur, colonne)

For Each c2 In searchrange
If CStr(c2.Value) <> valeur Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If
Next

End Sub
Sub estsuperieura(valeur, colonne)

For Each c2 In searchrange

cvaleur = valeur
If IsNumeric(c2) Then
cvaleur = CDbl(valeur)
If c2.Value > cvaleur Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If
Else
If CStr(c2.Value) > cvaleur Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If
End If
Next

End Sub
Sub estsuperieuregala(valeur, colonne)

For Each c2 In searchrange
cvaleur = valeur
If IsNumeric(c2) Then
cvaleur = CDbl(valeur)
If c2.Value >= cvaleur Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If
Else
If CStr(c2.Value) >= cvaleur Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If
End If
Next

End Sub
Sub estinferieura(valeur, colonne)

For Each c2 In searchrange

cvaleur = valeur
If IsNumeric(c2) Then
cvaleur = CDbl(valeur)
If c2.Value < cvaleur Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If
Else
If CStr(c2.Value) < cvaleur Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If
End If
Next

End Sub
Sub estinferieuregala(valeur, colonne)

For Each c2 In searchrange
cvaleur = valeur
If IsNumeric(c2) Then
cvaleur = CDbl(valeur)
If c2.Value <= cvaleur Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If
Else
If CStr(c2.Value) <= cvaleur Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If
End If
Next

End Sub
Sub commencepar(valeur, colonne)

On Error Resume Next

For Each c2 In searchrange

If InStr(1, c2.Value, CStr(valeur), vbTextCompare) = 1 Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If

Next

End Sub
Sub necommencepaspar(valeur, colonne)

On Error Resume Next

For Each c2 In searchrange

If InStr(1, c2.Value, CStr(valeur), vbTextCompare) <> 1 Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If

Next

End Sub
Sub terminepar(valeur, colonne)

On Error Resume Next

For Each c2 In searchrange

If InStrRev(c2.Value, CStr(valeur), -1, vbTextCompare) <> 0 And
Right(c2.Value, Len(CStr(valeur))) = CStr(valeur) Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If

Next

End Sub
Sub neterminepaspar(valeur, colonne)

On Error Resume Next

For Each c2 In searchrange

If (InStrRev(c2.Value, CStr(valeur), -1, vbTextCompare) = 0) Or
(InStrRev(c2.Value, CStr(valeur), -1, vbTextCompare) <> 0 And Right(c2.Value,
Len(CStr(valeur))) <> CStr(valeur)) Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If

Next

End Sub
Sub contient(valeur, colonne)

On Error Resume Next

For Each c2 In searchrange

If InStr(1, c2.Value, CStr(valeur), vbTextCompare) <> 0 Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If

Next

End Sub
Sub necontientpas(valeur, colonne)

On Error Resume Next

For Each c2 In searchrange

If InStr(1, c2.Value, CStr(valeur), vbTextCompare) = 0 Then
ThisWorkbook.Sheets(1).Cells(c2.Column, colonne).Value = 1
End If

Next

End Sub

bonjour,

je cherche à supprimer les cellules dans la colonne A qui commence par
713 et une autre qui ne commence par par 715.


idem pour les cellules contenant "714A", idem pour ne contenant pas "DE54"

j'étais parti avec :

range("A1").select
do while activecell.value<>""
if activecell.value like "715" then
Selection.EntireRow.Delete

else

activecell.offset(1,0).select
end if
loop


mais cela ne marche pas.

merci de votre aide ,

Gilles