Excel- Explication effacement de zone
Résolu
mod77
Messages postés
1320
Date d'inscription
Statut
Membre
Dernière intervention
-
Le Pingou Messages postés 12274 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12274 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je n'arrive pas à effacer une zone de ma feuille.
On m'a donné ce code VBA mais je n'arrive pas à l'appliquer pour une autre zone.
Quelqu'un peut-il m'expliquer comment ça marche SVP ?
covide = Range("IV3").End(xlToLeft).Column
'covide = Cells(lig, Rows(3).Cells.Count).End(xlToLeft).Column 'cette ligne est équivalente à la première
Range( Cells(lg, cl), Cells(3, covide) ).ClearContents
Ce que je crois :
Range(X,Y).ClearContents : j'interprète que ça efface la cellule en [XY]
Range("YX").End(xlToLeft).Column : trop obscure pour moi et le reste aussi.
---------
Si je veux effacer la zone de la cellule B5 à J10 comment dois-je écrire ces lignes SVP?
Merci.
Je n'arrive pas à effacer une zone de ma feuille.
On m'a donné ce code VBA mais je n'arrive pas à l'appliquer pour une autre zone.
Quelqu'un peut-il m'expliquer comment ça marche SVP ?
covide = Range("IV3").End(xlToLeft).Column
'covide = Cells(lig, Rows(3).Cells.Count).End(xlToLeft).Column 'cette ligne est équivalente à la première
Range( Cells(lg, cl), Cells(3, covide) ).ClearContents
Ce que je crois :
Range(X,Y).ClearContents : j'interprète que ça efface la cellule en [XY]
Range("YX").End(xlToLeft).Column : trop obscure pour moi et le reste aussi.
---------
Si je veux effacer la zone de la cellule B5 à J10 comment dois-je écrire ces lignes SVP?
Merci.
Configuration: Windows XP Firefox 3.5.7
26 réponses
- 1
- 2
Suivant
-
-
Bonjour,
Elle peut varier!
Merci -
Le problème n'est pas d'effacer la zone mais de la sélectionner.
Je fais quelquefois ce genre de macro et j'utilise la méthode end(xldown). Exemple tu veux effacer les cellules de la colonne A. Il y a un titre en ligne 1
Je sélectionne la première cellule
Range("A2").Select
'tu sélectionne la dernière de la zone (il ne doit pas y avoir de ligne blanche)
Selection.End(xlDown).Select
x = ActiveCell.Row
'tu sélectionne la zone entière
Range("A2:A" & x).Select
Selection.ClearContents
Je pense que l'on peut le faire en plus simple
Gilles -
Alors pour résumer j'écris:
Range("A2").Select 'Sélection de la 1ere cellule
Selection.End(xlDown).Select 'Sélection dernier cellule de la zone
x = ActiveCell.Row ' x= dernière remplie
Range("A2:A" & x).Select 'Sélection de la colonne jusqu'à "x"
Selection.ClearContents 'Effacement
Si je veux 10 colonnes, puis-je écrire: Range("A2:J"& x) ?
Merci -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Pour ceci : Si je veux effacer la zone de la cellule B5 à J10 comment dois-je écrire ces lignes SVP?
Voice le code :Range("B5:J10").ClearContents
-
Bonsoir Le Pingou,
Merci pour la réponse. -
-
Oui Gilles, j'ai vu et répondu avant le message de Le Pingou.
Merci pour votre réponse j'essaie le code maintenant, même si le code de Le Pingou me satisfait.
Merci à tous les 2. -
Bien sûr, la seconde méthode est bonne et c'est même la meilleure, seulement il faut que la zone soit statique.
Gilles-
Bonjour gilles et mod77,
Eh bien oui la seconde méthode est meilleure et c'est vous qui le dite.
Dans sa se cas en voilà deux très intéressantes :
Numéro de la première colonne vide à droite: par exemple pour la ligne 3covide = Cells(3, Rows(3).Cells.Count).End(xlToLeft).Column + 1
Idem pour la première ligne vide par exemple la colonne [A] ou [1]livide = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row + 1
-
-
Oui et c'est aussi pourquoi je voulais la tester.
Encore Merci à tous les 2. -
Bonjour Le Pingou,
Merci pour les fomules.
covide = Cells(3, Rows(3).Cells.Count).End(xlToLeft).Column + 1
Voila justement dans votre formule ce que je ne comprend pas.
Que représente le "3" de Rows ?
Le 1er "3" c'est parce que c'est la ligne 3, non?!
idem pour la ligne A, faut-il toujours mettre 1 en fin du 1er Cells ?
livide = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row + 1
puis-je mettre "A" à la place du 1 ?
Merci -
Bonjour,
Que représente le "3" de Rows ?
Rep : Rows(3) est la ligne numéro 3, mais il faut prendre l’ensemble : Rows(3).Cells.Count ou je compte le nombre des cellules de la ligne 3 et cette valeur est donc l’index de la dernière colonne (petit souvenir, c’est quoi [IV1] ) se qui me donne la position de la dernière cellule et avec le End(xlToLeft).Column je récupère le numéro de la première cellule non vide sur la gauche.
Le 1er "3" c'est parce que c'est la ligne 3, non?!
C’est l’index de ligne 3. Pour l’objet Cells(IndexLigne, IndexColonne)
puis-je mettre "A" à la place du 1 ? l’IndexColonne est un nombre, cependant il est possible d’utiliser la lettre de colonne comme ceci : livide = Cells(Columns(1).Cells.Count, [“A”]).End(xlUp).Row + 1
-
Ok ! merci à tous j'ai compris!
J'ai mis le temps je sais mais voila.
Merci -
Bonjour mod77,
Je vais regardé demain.
Il serait quand même bien si vous mettiez un petit exemple explicite (sur une feuille excel par exemple)! -
Un grand merci à vous je poste un lien sur le poste en question .
Merci. -
Bonjour,
Une petite explication sur se que vou faite une fois le choix réalisé ? -
Désolé, il faut voir le poste " Affichage case d'option".
Merci à tous. -
Bonsoir,
Quelqu'un peut-il me dire ce qui ne va pas dans ces lignes SVP ? VBA dit " incompatibilité de type"
livide = Sheets("feuil1").Cells(Columns(1).Cells.Count, [“A”]).End(xlDown).Row + 1
Range(Sheets("feuil1").Cells(3, 1), Sheets("feuil1").Cells(livide, 1)).ClearContents
Car je dois effacer la 1ere colonne d'une autre feuille (feuil1) et j'ai essayé d'appliquer les formules précédentes.
Merci -
Bonjour,
Sans savoir ou la procédure est arrêtée (soulignement jaune) c'est une chance sur deux !
En principe,, cette ligne n'est pas correcte:
Range(Sheets("feuil1").Cells(3, 1), Sheets("feuil1").Cells(livide, 1)).ClearContents
correcte :
Sheets("feuil1").Range(Cells(3, 1),Cells(livide, 1)).ClearContents -
C'est sur la première ligne que ça plante, mais lorsque je met votre ligne c'est sur la votre que ça se marque en jaune.
Merci
- 1
- 2
Suivant