effacer cellule de la feuille 2 sans l'ouvrire

llambry

XLDnaute Junior
Bonjour,

Je suis sur la feuille 1, et je voudrait effacer une cellule de la feuille 2 sans l'ouvrir...
Cela est il possible ???

Pour le moment mon code VBA est le suivant :

Sheets ("feuille2").select
range ("A1").select
Selection.ClearContents

Sheets ("feuille1").select

merci d'avance pour vos réponses ...
 

Dranreb

XLDnaute Barbatruc
Re : effacer cellule de la feuille 2 sans l'ouvrire

Bonjour;
Mais bien sûr!
VB:
Sheets("feuille2").Range("A1").ClearContents
Ça peut aussi s'écrire:
VB:
Feuil2.[A1].ClearContents
si Feuil2 est le CodeName de "Feuille2"

N'est ce pas, si l'enregistreur de macros traduit tout par des Select, c'est par fidélité aux commande effectuées depuis l'interface utilisateur, lesquelles ne peuvent s'effectuer que par l'intermédiaire de sélections. Il faut toujours tout contracter et éliminer ces sélections inutiles. Il vaut même mieux même affecter par un Set, parfois, un objet à une variable de son type (Worbook, Worksheet ou Range) pour éviter des répétitions, plutôt que de le sélectionner et travailler avec Selection qui est une expression objet banalisée et oblige à plein de liaisons tardives.
Cordialement.
 
Dernière édition:

llambry

XLDnaute Junior
problème tri de dates

J'ai un autre problème aussi sur lequel je chercher une solution depuis un moment sans avoir trouver ...

j'ai un code vba qui me permet de faire des calculs en auto puis des copier/coller et ensuite je veut faire un tri par date et imprimer mon document.
Cependant mon tri par date ne fonctionne pas lorsqu'il y a plusieurs mois dans la liste, exemple (résultat après tri) :

01.02.2012
01.02.2012
02/01/2012
02/01/2012
29.01.2012
29.01.2012
29.01.2012
29.01.2012
30.01.2012
31.01.2012
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : effacer cellule de la feuille 2 sans l'ouvrire

Ça ne peut plus se régler sans joindre un fichier qui montre le problème, qu'on voie à quel niveau il faut intervenir (en amont si possible plutôt qu'à postériori sur la liste mal constituée).
Apparemment votre liste contient des chaînes de caractères et non des dates.
À +
 

nyko283

XLDnaute Occasionnel
Re : effacer cellule de la feuille 2 sans l'ouvrire

Bonjour llambry, Dranreb,

Je pense que ton probleme vient que les dates style : JJ.MM.AAAA ne sont pas reconnu comme des dates mais comme du texte, il faudrait peut etre remplacer tous les "." par des "/" avant de faire le tri.
par exemple avec la fonction Replace(montexte,".","/").
 

llambry

XLDnaute Junior
Re : effacer cellule de la feuille 2 sans l'ouvrire

Je viens de mettre un code pour remplacer les . par / mais lorsque je remplace une date 03.02.2012 --> 02/03/2012 ????

Voilà mon code :

'modifie le format de la date
Dim i As Long, derlign As Long
derlign = Range("j65000").End(xlUp).Row 'donne la dernière ligne non vide en colonne J
For i = 1 To derlign
Cells(i, 10) = Replace(Cells(i, 10).Value, ".", "/")
Next i
 

nyko283

XLDnaute Occasionnel
Re : effacer cellule de la feuille 2 sans l'ouvrire

alors utilise au lieu de la foncytion replace une fonction de reconstruction de date :
DateSerial(Right(Range("A1"), 4), Mid(Range("A1"), 4, 2), Left(Range("A1"), 2))
Right(Range("A1"), 4) => pour l'année
Mid(Range("A1"), 4, 2)=> pour le mois
et Left(Range("A1"), 2))=> pour le jour
soit la fonction Dateserial(Annee,mois,jour).
 

nyko283

XLDnaute Occasionnel
Re : effacer cellule de la feuille 2 sans l'ouvrire

Alors Cells(i,10) cells correspond a une cellule alors que range lui fait référence a une plage de cellules ( qui peut ne contenir qu'une cellule), ensuite le i représente le numéro de ligne, et 10 le numero de colonne( A=1,B=2,C=3...)
donc avec ton code cela devrais donne ceci :

VB:
Dim i As Long, derlign As Long
derlign = Range("j65000").End(xlUp).Row 'donne la dernière ligne non vide en colonne J
For i = 1 To derlign
Cells(i, 10) = DateSerial(Right(Cells(i, 10), 4), Mid(Cells(i, 10), 4, 2), Left(Cells(i, 10), 2))
Next i
edit : pour ce qui est des fonctions Right,Mid et left les explications sont ici
 
Dernière édition:

llambry

XLDnaute Junior
Re : effacer cellule de la feuille 2 sans l'ouvrire

Bonsoir nyko283,

Je viens de mettre ton code et j'ai eu quelque petit soucis mais maintenant ça marche. En faite j'ai du modifier un peu le code car lorsqu'une cellule est vide le code plantait...

Merci encore
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 957
Membres
103 990
dernier inscrit
lamiadebz