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

Compression d'écriture sous VBA Excel

4 réponses
Avatar
esteban
Bonjour à tous

J'ai un petit problème sous VBA, j'aimerai compresser les écritures
suivantes, mais je n'ai pas réussi à arriver à mes fins. Si quelqu'un pouvait
se pencher sur mon problème. Merci par avance.

Dim lettre As String

If Range("H14") <= 8 Then
lettre = "Commande 1"
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = UCase(lettre) Then
For Each WS In Worksheets WS.Rows(ligne).EntireRow.Delete
Next WS
End If
Next ligne
End If

If Range("H14") <= 8 Then
lettre = "Commande 2"
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = UCase(lettre) Then
For Each WS In Worksheets WS.Rows(ligne).EntireRow.Delete
Next WS
End If
Next ligne
End If

4 réponses

Avatar
Jacky
Bonsoir,
Ceci peut-être:
'--------
If Range("H14") <= 8 Then
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = "COMMANDE 1" Or UCase(Cells(ligne, 1)) =
"COMMANDE 2" Then
For Each ws In Worksheets
ws.Rows(ligne).EntireRow.Delete
Next ws
End If
Next ligne
End If
'------------
Salutations
JJ

"esteban" a écrit dans le message de
news:
Bonjour à tous

J'ai un petit problème sous VBA, j'aimerai compresser les écritures
suivantes, mais je n'ai pas réussi à arriver à mes fins. Si quelqu'un
pouvait
se pencher sur mon problème. Merci par avance.

Dim lettre As String

If Range("H14") <= 8 Then
lettre = "Commande 1"
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = UCase(lettre) Then
For Each WS In Worksheets
WS.Rows(ligne).EntireRow.Delete
Next WS
End If
Next ligne
End If

If Range("H14") <= 8 Then
lettre = "Commande 2"
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = UCase(lettre) Then
For Each WS In Worksheets
WS.Rows(ligne).EntireRow.Delete
Next WS
End If
Next ligne
End If


Avatar
esteban
Ca fonctionne !!!
Merci énormément pour ton aide Jacky

"Jacky" wrote:

Bonsoir,
Ceci peut-être:
'--------
If Range("H14") <= 8 Then
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = "COMMANDE 1" Or UCase(Cells(ligne, 1)) =
"COMMANDE 2" Then
For Each ws In Worksheets
ws.Rows(ligne).EntireRow.Delete
Next ws
End If
Next ligne
End If
'------------
Salutations
JJ

"esteban" a écrit dans le message de
news:
Bonjour à tous

J'ai un petit problème sous VBA, j'aimerai compresser les écritures
suivantes, mais je n'ai pas réussi à arriver à mes fins. Si quelqu'un
pouvait
se pencher sur mon problème. Merci par avance.

Dim lettre As String

If Range("H14") <= 8 Then
lettre = "Commande 1"
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = UCase(lettre) Then
For Each WS In Worksheets
WS.Rows(ligne).EntireRow.Delete
Next WS
End If
Next ligne
End If

If Range("H14") <= 8 Then
lettre = "Commande 2"
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = UCase(lettre) Then
For Each WS In Worksheets
WS.Rows(ligne).EntireRow.Delete
Next WS
End If
Next ligne
End If







Avatar
liloo23
bonjour à toutes et à tous !!

J'ai constaté qu'avec la macro suivante, il ne me supprime pas
systématiquement toutes les cases comprenant soit le mot COMMANDE 1 soit le
mot COMMANDE 2. (par exemple, après l'exécution de la macro, il me reste une
case avec le mot commande 1) Quelqu'un pourrait-il m'éclairer sur l'origine
de ce dysfonctionnement ? Merci par avance

If Range("H14") <= 8 Then
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = "COMMANDE 1" Or UCase(Cells(ligne, 1)) > "COMMANDE 2" Then
For Each ws In Worksheets
ws.Rows(ligne).EntireRow.Delete
Next ws
End If
Next ligne
End If





Ca fonctionne !!!
Merci énormément pour ton aide Jacky

"Jacky" wrote:

Bonsoir,
Ceci peut-être:
'--------
If Range("H14") <= 8 Then
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = "COMMANDE 1" Or UCase(Cells(ligne, 1)) =
"COMMANDE 2" Then
For Each ws In Worksheets
ws.Rows(ligne).EntireRow.Delete
Next ws
End If
Next ligne
End If
'------------
Salutations
JJ

"esteban" a écrit dans le message de
news:
Bonjour à tous

J'ai un petit problème sous VBA, j'aimerai compresser les écritures
suivantes, mais je n'ai pas réussi à arriver à mes fins. Si quelqu'un
pouvait
se pencher sur mon problème. Merci par avance.

Dim lettre As String

If Range("H14") <= 8 Then
lettre = "Commande 1"
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = UCase(lettre) Then
For Each WS In Worksheets
WS.Rows(ligne).EntireRow.Delete
Next WS
End If
Next ligne
End If

If Range("H14") <= 8 Then
lettre = "Commande 2"
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = UCase(lettre) Then
For Each WS In Worksheets
WS.Rows(ligne).EntireRow.Delete
Next WS
End If
Next ligne
End If









Avatar
Jacky
Bonsoir,

Quelqu'un pourrait-il m'éclairer sur l'origine de ce dysfonctionnement ?


Oui si le mot COMMANDE 1 ou le mot COMMANDE 2 se trouve après la ligne
65000

Si c'est le cas il faudra remplacer cette ligne de code
For ligne = 1 To [A65000].End(xlUp).Row
par celle-ci


For ligne = 1 To [A65536].End(xlUp).Row

Salutations
JJ


Range("A65536").End(xlUp).Row
"liloo23" a écrit dans le message de news:

bonjour à toutes et à tous !!

J'ai constaté qu'avec la macro suivante, il ne me supprime pas
systématiquement toutes les cases comprenant soit le mot COMMANDE 1 soit
le
mot COMMANDE 2. (par exemple, après l'exécution de la macro, il me reste
une
case avec le mot commande 1) Quelqu'un pourrait-il m'éclairer sur
l'origine
de ce dysfonctionnement ? Merci par avance

If Range("H14") <= 8 Then
For ligne = 1 To [A65000].End(xlUp).Row
If UCase(Cells(ligne, 1)) = "COMMANDE 1" Or UCase(Cells(ligne, 1)) >> "COMMANDE 2" Then
For Each ws In Worksheets
ws.Rows(ligne).EntireRow.Delete
Next ws
End If
Next ligne
End If