Question d'ordre théorique

Geinoch

XLDnaute Occasionnel
Aujourd'hui j'ai eu à prendre une liste de 1450 valeurs en colonne et j'ai dû supprimer les cellules vides qui fesaient espace...
J'ai donc fait cette macro:
Code:
Private Sub CommandButton1_Click()
Range("A1:A1453").Select
For Each Vcellule In Selection
If Vcellule.Value = "" Then
Vcellule.Delete
End If
Next

J'ai pris cette macro sur un post à quelque part sur le forum... La personne au départ avait fait un code Find, mais ChTi60 lui a dit que ce n'était pas nécessaire... Bien-sûr il est clair que ça ne l'était pas puisque ça fonctionne.

Alors je me suis dit... Hmm VCellule, Vsearch v n'importe quoi, j'ai le goût d'en savoir davantage sur ces objets (étant donné qu'avant je croyais que c'était des variables qu'ils fallait définir nous-même). Alors j'ouvre l'explorateur et tente de trouver de l'aide sur ceux-ci, mais nada, niet, rien du tout, trouve pas ces objets...

Ma question est la suivante, la lettre V sert à quoi? Dites m'en plus? Abreuvez-moi de vos connaissances? Téléchargez vos cellules cervicales en moi...
 

Cousinhub

XLDnaute Barbatruc
Re : Question d'ordre théorique

Bonjour, le québecois
je suis sûr qu'en utilisant un de tes neurones, t'aurais pu trouver tout seul :D

For Each Vcellule In Selection

on aurait pu mettre :

For Each ViveLeQuebecLibre In Selection
If ViveLeQuebecLibre .Value = "" Then
ViveLeQuebecLibre .Delete

c'est juste une variable. dans ce cas une cellule (ou Range), car la sélection ne comprend que des cellules : Range("A1:A1453").Select
;););)
 

jeanpierre

Nous a quitté
Repose en paix
Re : Question d'ordre théorique

Salut Daniel, bhbh, le forum,

J'allais te sortir une énorm.C.......duMêmeGenre..... mais bhbh à été plus rapide...

Généralement lorsque tu tappes une instruction en VBA, et après un point, VBA te proposes toutes les solutions....

S'il y a un terme que tu ne comprends pas, tu le selectionnes et F1, s'il existe l'aide te donne la ou les solutions, s'il n'existe pas, ben, il te le dit aussi.

Maintenant, cela dépend de comment tu as configuré ton espace VBA....

Allez bon après-midi et à te lire.

Jean-Pierre

Edit : Ah, va faire quelques bisous à Robert qui t'a gentillement répondu sur un autre fil..... sinon, il risque de se rendre malade à l'eau... de Javel... après celle de Cologne...
 
Dernière édition:

Geinoch

XLDnaute Occasionnel
Re : Question d'ordre théorique

Je sais de quoi tu Parle JP mais je ne sais pourquoi, parfois la fenêtre ouvre parfois non... Parfois l'étiquette d'aide s'ouvre d'autre fois non... Mon poste au travail est capricieux =)

Et si c'est le topic du combobox je l'ai remercié il me semble =)
 

Cousinhub

XLDnaute Barbatruc
Re : Question d'ordre théorique

De plus, la méthode citée n'est pas totalement sûre.
Si tu as 2 cellules vides l'une au dessus de l'autre, il n'en supprimera qu'une.
Il vaut mieux privilégier quelque chose comme ça :

Sub efface()
For i = [a65000].End(xlUp).Row To 1 Step -1
If Cells(i, 1).Value = "" Then Cells(i, 1).Delete
Next
End Sub

Ici, on part du bas vers la ligne 1,par pas de 1 vers le haut (Step -1)
ainsi, si on supprime une cellule, celle du dessus sera toujours là, et on pourra la tester. Dans l'autre sens, ce n'est pas vrai, le fait de supprimer une cellule, la cellule de nouveau virtuellement sélectionnée est la cellule du dessous. comme on fait une boucle, on testera celle du dessous, celle-ci l'a échappé belle!!!
 

Geinoch

XLDnaute Occasionnel
Re : Question d'ordre théorique

Ok parce que le programme croira avoir effacer la cellule vide 23 mais au fond cest la cellule vide de 24 qui se sera glissé dessus...

Bordel ou ta appris tout ca toi? genre step - 1 et tout... ta analyser les 3000 objets un par un?
 

jeanpierre

Nous a quitté
Repose en paix
Re : Question d'ordre théorique

Re Daniel,

Désolé, mais partiellement absent ce tantôt, je n'ai pas vu ta réedition, et comme je m'inquiète de l'état de santé de notre ami Robert... HiHi (p..... M....., F... C....., peux même pas mettre de smiley en Réponse rapide....)

Ne m'en veux pas et surtout, ne m'envoyes pas les foudres de la Terre, j'ai ma dose en ce moment..

Amitiés.

Jean-Pierre
 

Cousinhub

XLDnaute Barbatruc
Re : Question d'ordre théorique

Les 3000? ça va pas?
Non, j'ai commencé il y a une quinzaine d'années, XL4, si mon neurone est bon, et ça m'a plu.
alors j'ai travaillé, fait des essais multiples et variés et .....dangereux (j'te raconte pas le nombre de Reboot sauvages, de pertes de données, d'heures passées sur ce machin), plus quelques bouquins, le dernier en date :
VBA pour Excel 2003 par MONSIEUR John Walkenbach,une des plus grosses pointures.
 

Geinoch

XLDnaute Occasionnel
Re : Question d'ordre théorique

Re!
JP t'inquiète pas je me met plus en colère depuis que j'ai passé à l'école de redressement =P Je ne t'en veut pas et te respect énormément...

Bhbh je devrais peut-être me mettre sur ces bouquins... C'est que je suis plus dans le domaine graphique et artisitique alors je me fais mal regarder quand je code quelque chose =) Le dernier bouquin c'était Macromedia flash coté programation (non animation)
 

skoobi

XLDnaute Barbatruc
Re : Question d'ordre théorique

Les 3000? ça va pas?
Non, j'ai commencé il y a une quinzaine d'années, XL4, si mon neurone est bon, et ça m'a plu.
alors j'ai travaillé, fait des essais multiples et variés et .....dangereux (j'te raconte pas le nombre de Reboot sauvages, de pertes de données, d'heures passées sur ce machin), plus quelques bouquins, le dernier en date :
VBA pour Excel 2003 par MONSIEUR John Walkenbach,une des plus grosses pointures.

Bonsoir tout le monde,
bhbh, je voulais te demandé si le livre que tu as lu est bien celui-là:Livre VBA pour Excel 2003 - J. Walkenbach - - Librairie Eyrolles

et s'il est aussi bien fait que VBA pour excel pour les nuls du même auteur (que j'ai lu)

Bonne soirée à vous tous.

Skoobi
 

Cousinhub

XLDnaute Barbatruc
Re : Question d'ordre théorique

oui, c'est bien celui-là, et comparer JW à "Les Nuls"?
j'espère qu'il ne nous lit pas.......:D

Edit : lu trop vite, pas vu "du même auteur"

il est vraiment très bien fait, avec le CD, plein de choses à apprendre (mais qui n'en a pas?)