-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides dans ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu utilises
au choix ( b17
etant la case de demarrage de tes données et 4 le nombre
de colonnes que tu
veux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a écrit
dans le message de
news:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la colonne G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides dans ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu utilises
au choix ( b17
etant la case de demarrage de tes données et 4 le nombre
de colonnes que tu
veux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:15e2801c41e23$0de5f740$a001280a@phx.gbl...
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la colonne G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides dans ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu utilises
au choix ( b17
etant la case de demarrage de tes données et 4 le nombre
de colonnes que tu
veux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a écrit
dans le message de
news:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la colonne G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides dans ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu utilises
au choix ( b17
etant la case de demarrage de tes données et 4 le nombre
de colonnes que tu
veux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a écrit
dans le message de
news:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la colonne G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides dans ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu utilises
au choix ( b17
etant la case de demarrage de tes données et 4 le nombre
de colonnes que tu
veux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:15e2801c41e23$0de5f740$a001280a@phx.gbl...
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la colonne G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides dans ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu utilises
au choix ( b17
etant la case de demarrage de tes données et 4 le nombre
de colonnes que tu
veux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a écrit
dans le message de
news:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la colonne G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0 Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" a écrit dans le message de
news:17bb901c41e51$000d9190$
heu...je remplace selection où ?-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides dans ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu utilises
au choix ( b17etant la case de demarrage de tes données et 4 le nombre
de colonnes que tuveux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a écrit
dans le message denews:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la colonne G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0 Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:17bb901c41e51$000d9190$a601280a@phx.gbl...
heu...je remplace selection où ?
-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides dans ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu utilises
au choix ( b17
etant la case de demarrage de tes données et 4 le nombre
de colonnes que tu
veux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:15e2801c41e23$0de5f740$a001280a@phx.gbl...
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la colonne G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0 Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" a écrit dans le message de
news:17bb901c41e51$000d9190$
heu...je remplace selection où ?-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides dans ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu utilises
au choix ( b17etant la case de demarrage de tes données et 4 le nombre
de colonnes que tuveux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a écrit
dans le message denews:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la colonne G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
-----Message d'origine-----
Bonsoir,
tu remplaces selection à l'endroit ou le mot apparait par
range...
Cordialement.
"michdenis" a écrit dans le
message de
news:%Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0 Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" a écrit
dans le message de
news:17bb901c41e51$000d9190$
heu...je remplace selection où ?-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides dans
ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows
(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu
utilises
au choix ( b17etant la case de demarrage de tes données et 4 le
nombre
de colonnes que tuveux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a écrit
dans le message denews:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len
(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la colonne
G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
.
-----Message d'origine-----
Bonsoir,
tu remplaces selection à l'endroit ou le mot apparait par
range...
Cordialement.
"michdenis" <michdenis@hotmail.com> a écrit dans le
message de
news:%23se5Q3lHEHA.320@tk2msftngp13.phx.gbl...
Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0 Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:17bb901c41e51$000d9190$a601280a@phx.gbl...
heu...je remplace selection où ?
-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides dans
ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows
(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu
utilises
au choix ( b17
etant la case de demarrage de tes données et 4 le
nombre
de colonnes que tu
veux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:15e2801c41e23$0de5f740$a001280a@phx.gbl...
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len
(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la colonne
G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
.
-----Message d'origine-----
Bonsoir,
tu remplaces selection à l'endroit ou le mot apparait par
range...
Cordialement.
"michdenis" a écrit dans le
message de
news:%Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0 Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" a écrit
dans le message de
news:17bb901c41e51$000d9190$
heu...je remplace selection où ?-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides dans
ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows
(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu
utilises
au choix ( b17etant la case de demarrage de tes données et 4 le
nombre
de colonnes que tuveux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a écrit
dans le message denews:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len
(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la colonne
G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
.
-----Message d'origine-----
merci à tous deux: je m'en vais tester vos solutions
amicalement-----Message d'origine-----
Bonsoir,
tu remplaces selection à l'endroit ou le mot apparait
par
range...
Cordialement.
"michdenis" a écrit dans le
message denews:%Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0 Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" a écrit
dans le message denews:17bb901c41e51$000d9190$
heu...je remplace selection où ?-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides
dans
taselection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows
(R).DeleteNext R
End Sub
si ta plage est déjà définie tu remplaces selection
par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu
utilisesau choix ( b17etant la case de demarrage de tes données et 4 le
nombrede colonnes que tuveux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a écrit
dans le message denews:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len
(f) -InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la
colonne
Gj'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G
affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
.
.
-----Message d'origine-----
merci à tous deux: je m'en vais tester vos solutions
amicalement
-----Message d'origine-----
Bonsoir,
tu remplaces selection à l'endroit ou le mot apparait
par
range...
Cordialement.
"michdenis" <michdenis@hotmail.com> a écrit dans le
message de
news:%23se5Q3lHEHA.320@tk2msftngp13.phx.gbl...
Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0 Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:17bb901c41e51$000d9190$a601280a@phx.gbl...
heu...je remplace selection où ?
-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides
dans
ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows
(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection
par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu
utilises
au choix ( b17
etant la case de demarrage de tes données et 4 le
nombre
de colonnes que tu
veux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:15e2801c41e23$0de5f740$a001280a@phx.gbl...
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len
(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la
colonne
G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G
affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
.
.
-----Message d'origine-----
merci à tous deux: je m'en vais tester vos solutions
amicalement-----Message d'origine-----
Bonsoir,
tu remplaces selection à l'endroit ou le mot apparait
par
range...
Cordialement.
"michdenis" a écrit dans le
message denews:%Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0 Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" a écrit
dans le message denews:17bb901c41e51$000d9190$
heu...je remplace selection où ?-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides
dans
taselection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows
(R).DeleteNext R
End Sub
si ta plage est déjà définie tu remplaces selection
par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu
utilisesau choix ( b17etant la case de demarrage de tes données et 4 le
nombrede colonnes que tuveux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a écrit
dans le message denews:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len
(f) -InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la
colonne
Gj'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G
affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
.
.
-----Message d'origine-----
merci à tous deux: je m'en vais tester vos solutions
amicalement-----Message d'origine-----
Bonsoir,
tu remplaces selection à l'endroit ou le mot apparait
par
range...
Cordialement.
"michdenis" a écrit dans le
message denews:%Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0 Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" a écrit
dans le message denews:17bb901c41e51$000d9190$
heu...je remplace selection où ?-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides
dans
taselection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows
(R).DeleteNext R
End Sub
si ta plage est déjà définie tu remplaces selection
par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu
utilisesau choix ( b17etant la case de demarrage de tes données et 4 le
nombrede colonnes que tuveux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a écrit
dans le message denews:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len
(f) -InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la
colonne
Gj'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G
affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
.
.
-----Message d'origine-----
merci à tous deux: je m'en vais tester vos solutions
amicalement
-----Message d'origine-----
Bonsoir,
tu remplaces selection à l'endroit ou le mot apparait
par
range...
Cordialement.
"michdenis" <michdenis@hotmail.com> a écrit dans le
message de
news:%23se5Q3lHEHA.320@tk2msftngp13.phx.gbl...
Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0 Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:17bb901c41e51$000d9190$a601280a@phx.gbl...
heu...je remplace selection où ?
-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides
dans
ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows
(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection
par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu
utilises
au choix ( b17
etant la case de demarrage de tes données et 4 le
nombre
de colonnes que tu
veux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:15e2801c41e23$0de5f740$a001280a@phx.gbl...
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len
(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la
colonne
G
j'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G
affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
.
.
-----Message d'origine-----
merci à tous deux: je m'en vais tester vos solutions
amicalement-----Message d'origine-----
Bonsoir,
tu remplaces selection à l'endroit ou le mot apparait
par
range...
Cordialement.
"michdenis" a écrit dans le
message denews:%Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0 Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" a écrit
dans le message denews:17bb901c41e51$000d9190$
heu...je remplace selection où ?-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides
dans
taselection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows
(R).DeleteNext R
End Sub
si ta plage est déjà définie tu remplaces selection
par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu
utilisesau choix ( b17etant la case de demarrage de tes données et 4 le
nombrede colonnes que tuveux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a écrit
dans le message denews:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len
(f) -InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la
colonne
Gj'ai bien trouvé ceci qui ressemble un peu à ce que je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G
affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
.
.
-----Message d'origine-----
Bonjour,
Voilà une macro qui marche pour ton cas de figure.
Il faut d'abord faire un petit formulaire pour rentrer la
valeur pour
laquelle tu veux que tes lignes soient supprimées. Ta
macro de base appelle
le formulaire, sur lequel il y a une listbox et un bouton
validation qui
declenche la macro de suppression en lui repercutant la
valeur saisie.
Attention la valeur saisie doit être strictement la
valeur que tu veux
supprimer. Une difference de casse ou un espace
supplémentaire font que le
nom est different. Je pense qu'on peut perfectionner en
mettant des valeurs
joker pour que ça supprime en même temps " total
machin" mais je n'ai pas
encore trop essayé.
Le code de la macro de destruction (b7 à adapter et 2
dans cells (r,2)):
Sub DetruireLigne()
Range("B7", Range("b7").End(xlDown).Offset(0,
4).Address).Select
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count - 1
nomvalue = Formulaire.nom.Value
For R = DerniereLigne To Premiereligne Step -1
If Cells(R, 2).Value = nomvalue Then Rows(R).Delete
Next R
Formulaire.Hide
End Sub
Le code du formulaire
Attention à renommer ton bouton commandbutton en
validation et ta listbox
en nom ou à mettre ta macro en concordance :
Private Sub validation_Click()
DetruireLigne
End Sub
"gaston" a écrit
dans le message de
news:1abd401c41ed4$a6525490$
ca ne fonctionne pas. je me suis peut-être mal expliqué
sur ce que je veux obtenir: j'ai une liste comme ça:
D E F G
CLIENT CRED EMIS(+) CRED ENCAI.(-) SOLDE
ABAD -54,56 -54,56
total ABAD 0 -54,56 -54,56
AGOUT 413,6 413,6
AGOUT -413,6 -413,6
total AGOUT 413,6 -413,6 0
ARANGUET 526,87 526,87
ARANGUET -200 -200
ARANGUET -176,87 -176,87
total ARANGUET 526,87 -376,87 150
BALLIHAUT 261,2 261,2
BALLIHAUT -130,6 -130,6
BALLIHAUT -130,6 -130,6
total BALLIHAUT 261,2 -261,2 0
donc dans cet exemple, je voudrais que soient supprimées
TOUTES les lignes concernant AGOUT et BALLIHAUT (sachant
que la longueur de la liste est variable)-----Message d'origine-----
merci à tous deux: je m'en vais tester vos solutions
amicalement-----Message d'origine-----
Bonsoir,
tu remplaces selection à l'endroit ou le mot apparait
parrange...
Cordialement.
"michdenis" a écrit dans le
message denews:%Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la
feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0
Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" a écrit
dans le message denews:17bb901c41e51$000d9190$
heu...je remplace selection où ?-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides
danstaselection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows
(R).DeleteNext R
End Sub
si ta plage est déjà définie tu remplaces selection
parrange(" xx : yy ")
si ta plage varie en fonction de tes données tu
utilisesau choix ( b17etant la case de demarrage de tes données et 4 le
nombrede colonnes que tuveux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a
écrit
dans le message denews:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des
sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len
(f) -InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la
colonneGj'ai bien trouvé ceci qui ressemble un peu à ce que
je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G
affichezéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , ,
xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
.
.
.
-----Message d'origine-----
Bonjour,
Voilà une macro qui marche pour ton cas de figure.
Il faut d'abord faire un petit formulaire pour rentrer la
valeur pour
laquelle tu veux que tes lignes soient supprimées. Ta
macro de base appelle
le formulaire, sur lequel il y a une listbox et un bouton
validation qui
declenche la macro de suppression en lui repercutant la
valeur saisie.
Attention la valeur saisie doit être strictement la
valeur que tu veux
supprimer. Une difference de casse ou un espace
supplémentaire font que le
nom est different. Je pense qu'on peut perfectionner en
mettant des valeurs
joker pour que ça supprime en même temps " total
machin" mais je n'ai pas
encore trop essayé.
Le code de la macro de destruction (b7 à adapter et 2
dans cells (r,2)):
Sub DetruireLigne()
Range("B7", Range("b7").End(xlDown).Offset(0,
4).Address).Select
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count - 1
nomvalue = Formulaire.nom.Value
For R = DerniereLigne To Premiereligne Step -1
If Cells(R, 2).Value = nomvalue Then Rows(R).Delete
Next R
Formulaire.Hide
End Sub
Le code du formulaire
Attention à renommer ton bouton commandbutton en
validation et ta listbox
en nom ou à mettre ta macro en concordance :
Private Sub validation_Click()
DetruireLigne
End Sub
"gaston" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:1abd401c41ed4$a6525490$a401280a@phx.gbl...
ca ne fonctionne pas. je me suis peut-être mal expliqué
sur ce que je veux obtenir: j'ai une liste comme ça:
D E F G
CLIENT CRED EMIS(+) CRED ENCAI.(-) SOLDE
ABAD -54,56 -54,56
total ABAD 0 -54,56 -54,56
AGOUT 413,6 413,6
AGOUT -413,6 -413,6
total AGOUT 413,6 -413,6 0
ARANGUET 526,87 526,87
ARANGUET -200 -200
ARANGUET -176,87 -176,87
total ARANGUET 526,87 -376,87 150
BALLIHAUT 261,2 261,2
BALLIHAUT -130,6 -130,6
BALLIHAUT -130,6 -130,6
total BALLIHAUT 261,2 -261,2 0
donc dans cet exemple, je voudrais que soient supprimées
TOUTES les lignes concernant AGOUT et BALLIHAUT (sachant
que la longueur de la liste est variable)
-----Message d'origine-----
merci à tous deux: je m'en vais tester vos solutions
amicalement
-----Message d'origine-----
Bonsoir,
tu remplaces selection à l'endroit ou le mot apparait
par
range...
Cordialement.
"michdenis" <michdenis@hotmail.com> a écrit dans le
message de
news:%23se5Q3lHEHA.320@tk2msftngp13.phx.gbl...
Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la
feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0
Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:17bb901c41e51$000d9190$a601280a@phx.gbl...
heu...je remplace selection où ?
-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides
dans
ta
selection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows
(R).Delete
Next R
End Sub
si ta plage est déjà définie tu remplaces selection
par
range(" xx : yy ")
si ta plage varie en fonction de tes données tu
utilises
au choix ( b17
etant la case de demarrage de tes données et 4 le
nombre
de colonnes que tu
veux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" <anonymous@discussions.microsoft.com> a
écrit
dans le message de
news:15e2801c41e23$0de5f740$a001280a@phx.gbl...
Bonjour !
Je suis débutant en vba...j'ai une liste avec des
sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len
(f) -
InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la
colonne
G
j'ai bien trouvé ceci qui ressemble un peu à ce que
je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G
affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , ,
xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
.
.
.
-----Message d'origine-----
Bonjour,
Voilà une macro qui marche pour ton cas de figure.
Il faut d'abord faire un petit formulaire pour rentrer la
valeur pour
laquelle tu veux que tes lignes soient supprimées. Ta
macro de base appelle
le formulaire, sur lequel il y a une listbox et un bouton
validation qui
declenche la macro de suppression en lui repercutant la
valeur saisie.
Attention la valeur saisie doit être strictement la
valeur que tu veux
supprimer. Une difference de casse ou un espace
supplémentaire font que le
nom est different. Je pense qu'on peut perfectionner en
mettant des valeurs
joker pour que ça supprime en même temps " total
machin" mais je n'ai pas
encore trop essayé.
Le code de la macro de destruction (b7 à adapter et 2
dans cells (r,2)):
Sub DetruireLigne()
Range("B7", Range("b7").End(xlDown).Offset(0,
4).Address).Select
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count - 1
nomvalue = Formulaire.nom.Value
For R = DerniereLigne To Premiereligne Step -1
If Cells(R, 2).Value = nomvalue Then Rows(R).Delete
Next R
Formulaire.Hide
End Sub
Le code du formulaire
Attention à renommer ton bouton commandbutton en
validation et ta listbox
en nom ou à mettre ta macro en concordance :
Private Sub validation_Click()
DetruireLigne
End Sub
"gaston" a écrit
dans le message de
news:1abd401c41ed4$a6525490$
ca ne fonctionne pas. je me suis peut-être mal expliqué
sur ce que je veux obtenir: j'ai une liste comme ça:
D E F G
CLIENT CRED EMIS(+) CRED ENCAI.(-) SOLDE
ABAD -54,56 -54,56
total ABAD 0 -54,56 -54,56
AGOUT 413,6 413,6
AGOUT -413,6 -413,6
total AGOUT 413,6 -413,6 0
ARANGUET 526,87 526,87
ARANGUET -200 -200
ARANGUET -176,87 -176,87
total ARANGUET 526,87 -376,87 150
BALLIHAUT 261,2 261,2
BALLIHAUT -130,6 -130,6
BALLIHAUT -130,6 -130,6
total BALLIHAUT 261,2 -261,2 0
donc dans cet exemple, je voudrais que soient supprimées
TOUTES les lignes concernant AGOUT et BALLIHAUT (sachant
que la longueur de la liste est variable)-----Message d'origine-----
merci à tous deux: je m'en vais tester vos solutions
amicalement-----Message d'origine-----
Bonsoir,
tu remplaces selection à l'endroit ou le mot apparait
parrange...
Cordialement.
"michdenis" a écrit dans le
message denews:%Bonjour Gaston,
Voici une façon de faire.
Dans la procédure efface, remplace le nom de la
feuille
et la plage de cellule à scanner.
'------------------------------
Sub efface()
Dim Rg As Range, A As Long
With Worksheets("Feuil2")
Set Rg = .Range("A1:A10")
End With
For A = Rg.Rows.Count To 1 Step -1
If Cellule(Rg(A)) = True Then
Rg(A).EntireRow.Delete
End If
Next
End Sub
'------------------------------
Function Cellule(R As Range) As Boolean
If InStr(1, R, "Sous.Total", vbTextCompare) > 0
Then
Cellule = True
End If
End Function
'------------------------------
Salutations!
"gaston" a écrit
dans le message denews:17bb901c41e51$000d9190$
heu...je remplace selection où ?-----Message d'origine-----
Bonjour,
une macro qui te detruit toutes les lignes vides
danstaselection (mais aussi bien sur à coté).
Sub DetruireLigne()
Premiereligne = Selection.Row
DerniereLigne = Premiereligne + Selection.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To Premiereligne Step -1
If Application.CountA(Rows(R)) = 0 Then Rows
(R).DeleteNext R
End Sub
si ta plage est déjà définie tu remplaces selection
parrange(" xx : yy ")
si ta plage varie en fonction de tes données tu
utilisesau choix ( b17etant la case de demarrage de tes données et 4 le
nombrede colonnes que tuveux selectionner)
Range("B17", Range("b17").End(xlDown).Offset(0,
4).Address).Select
ou
Range("B17", Range("b65000").End(xlUp).Offset(0,
4).Address).Select
Cordialement
"gaston" a
écrit
dans le message denews:15e2801c41e23$0de5f740$
Bonjour !
Je suis débutant en vba...j'ai une liste avec des
sous
totaux
cette macro ne permet de supprimer QUE les lignes
concernant UNE cellule (G12)
Function zoneST(x) As Range
Dim f As String
f = Range(x).Formula
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len
(f) -InStr(f, ",") -1))
End Function
Sub efface()
zoneST("G12").EntireRow.Delete
Range("G12").Value = "0"
End Sub
or je voudrais arriver à ce que TOUTE ma zone
soit "scannée"et que la macro ci dessus s'exécute
automatiquement pour toutes les cellules de la
colonneGj'ai bien trouvé ceci qui ressemble un peu à ce que
je
veux, mais je ne sais pas comment l'adapter:
Sub epuration()
' supprimer toutes les lignes dont la colonne G
affichezéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , ,
xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Delete
Next r
End Sub
, auriez-vous une solution ?
.
.
.
.