Effacement plage Feuil1 dans une macro

Guy55

XLDnaute Junior
Bonjour a tout le Forum
Les premieres lignes de ma macro devrait faire ceci :
1) Effacer sur la Feuil1 les colonnes F,G,H a partir de la ligne 3 jusque la derniere ligne trouvée.
2) Repasser sur la Feuil2 pour effectuer les calculs.

J'essaie avec ceci mais je ne vois pas l'effacement en Feuil1.


Apres mes déclarations, voici les premieres de ma macro

Application.ScreenUpdating = False
With Worksheets ("Feuil1")
.Range("F3:H & .Range("F6500").End(xlUp).Row + 1.ClearContents
End With

Y a t-il plus simple comme instruction ?
Que se passe-t-il si Application.Screedating = True ?
Encore merci a tout le monde
Guy
 

skoobi

XLDnaute Barbatruc
Re : Effacement plage Feuil1 dans une macro

Bonsoir,

il y surtout une erreur de syntaxe dans le code.
Essaye plutôt ceci:

Code:
With Worksheets("Feuil1")
.Range("F3:H[COLOR=Red][B]"[/B][/COLOR] & .Range("F6500").End(xlUp).Row + 1[B][COLOR=Red])[/COLOR][/B].ClearContents
End With
Edit: "ScreenUpdating" correspond au rafraichissement de l'écran.
 

Guy55

XLDnaute Junior
Re : Effacement plage Feuil1 dans une macro

Bonsoir SKoobi,
Meme avec Application.ScreeUpdating = True,
il n'efface que les 9 premieres lignes lorsque je lance la macro.
Je t'ai attaché le fichier
Merci
Guy
 

Pièces jointes

  • somme1_V3OK.zip
    14.7 KB · Affichages: 22

bqtr

XLDnaute Accro
Re : Effacement plage Feuil1 dans une macro

Bonsoir,

Une façon de faire :

Code:
Sub test()
'Création de l'objet collection
Dim coll As Collection
Set coll = New Collection
ApplicationScreenUpdating = True
'Compteur a partir de N4 vers la fin
For n = 4 To Sheets("Feuil2").Range("N65536").End(xlUp).Row
On Error Resume Next
'Conversion les nombres de la colonne N Feuille 2 en chaine de caracteres
'Rempli la table Collection avec la conversion
  coll.Add Sheets("Feuil2").Range("N" & n), CStr(Sheets("Feuil2").Range("N" & n))
On Error GoTo 0
Next n
With Worksheets("Feuil1")
.Range("F3:H" & coll.Count + 2).ClearContents
End With
'Parcourir la table Collection a partir de 1 et comparer a la colonne critere a partir de 4
For n = 1 To coll.Count
 
.../...

Si je comprends bien la colonne H recoit les éléments de la collection, donc il faut se baser sur celle ci pour effacer la plage de données.

A+
 

Guy55

XLDnaute Junior
Re : Effacement plage Feuil1 dans une macro

kijn et Skoobi, ,
Ca fonctionne avec ("H3 : F3").
et Application.ScreenUpdating = True.
Je vois mon tableau se rafraichir , pis aucune valeur ne se trouvant dans l'ancien tableau ne reste affichée.
Merci encore !!!!!!
Guy
 

ftho

XLDnaute Occasionnel
Re : Effacement plage Feuil1 dans une macro

Bonjour,

Si je peux me permettre :) si c'est pour effacer tout le contenu sous la ligne 3, des colonnes F, G et H, il n'est pas besoin de demander à VB de rechercher la dernière cellule occupée
Code:
Sheets(1).Range("F3:H65535").ClearContents
devrait amplement suffir ;)
 

Guy55

XLDnaute Junior
Re : Effacement plage Feuil1 dans une macro

Bonsoir et merci bqtr,
With Worksheets("Feuil1")
.Range("F3:H" & coll.Count + 2).ClearContents
End With
Cette solution efface bien les valeurs mais si je supprime un critere, la derniere ligne du tableau ne se rafraichi pas.

Bonsoir ftho,
Sheets(1).Range("F3:H65535").ClearContents
est simple et fonctionne super bien si j'ai plus rien en dessous de mon tableau.

Bonsoir kjin et Skoobi,
With Worksheets ("Feuil1")
.Range("F3:H3" & .Range("F6500").End(xlUp).Row + 1).ClearContents
End With
en Ajoutant 3 a H , plus de probleme, ca fonctionne

Merci pour votre aide, espérant en faire profiter a tout le monde
Guy
 

ftho

XLDnaute Occasionnel
Re : Effacement plage Feuil1 dans une macro

Sheets(1).Range("F3:H65535").ClearContents
est simple et fonctionne super bien si j'ai plus rien en dessous de mon tableau.
Bin oui...tu demandais bien depuis la ligne 3 jusqu'à la dernière ligne trouvée ? Donc plus rien en dessous vu que c'est la dernière ligne...!

With Worksheets ("Feuil1")
.Range("F3:H3" & .Range("F6500").End(xlUp).Row + 1).ClearContents
End With
en Ajoutant 3 a H , plus de probleme, ca fonctionne
Juste pour que tu comprennes le fonctionnement : en supposant que ta dernière ligne soit la ligne 173, ta syntaxe va effacer de la cellule F3 à la cellule H3 & 173 + 1 = H3174

La première proposition de skoobi était parfaitement correcte

Bonne nuit ;)
 
Dernière édition:

bqtr

XLDnaute Accro
Re : Effacement plage Feuil1 dans une macro

Re,

Comme il y aura toujours la cellule H2 de non vide (Critère) le code de Skoobi convient très bien avec une petite modif :

Code:
With Worksheets("Feuil1")
.Range("F3:H" & .Range("[COLOR=blue]H[/COLOR]65536").End(xlUp).Row + 1).ClearContents
End With

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 594
Messages
2 090 088
Membres
104 371
dernier inscrit
Momo6767