Parcourir un colonne et lire seulement les cellules avec contenu
Bonjour,
Je suis novice en VBA et j'aimerais trouver un moyen d'afficher seulement les cellules de mon tableau avec du contenu.
Contexte :
J'ai scrapé un site avec plusieurs informations et j'ai collé le résultat du scrap sur une feuille. Je veux un rendu plus visuel sur une autre feuille de mon fichier. Je veux donc répartir les résultats sur plusieurs tableaux.
J'ai essayé de penser à la logique suivante :
Pour chaque cellule, vérifier si elle est = " "
Si c'est le cas, cellule + 1.
Sinon, afficher le contenu de la cellule dans la feuille de rendu.
En vous remerciant par avance,
Bonjour
Si ton tableau est continu(pas de ligne entièrement vide), tu sélectionnes le tout ( clic sur une cellule puis Ctrl A).
Outils Données Filtrer: tu utilise le filtre sur la colonne de choix en utilisant soit les paramètres proposés soit en les créant.
Si le résultat te convient idem Ctrl A puis copier et coller sur une autre feuille, seules les cellules visibles sont recopiées
A tester
Cordialement
FINDRH
Bonjour,
Si tu veux absolument passer pas VBA, il faut savoir que tu ne peux masquer que des lignes ou des colonnes et pas des cellules car ça contrevient au principe de tableur d'Excel.
Sinon, ton idée est la bonne. Tu dois passer par une boucle par laquelle tu testes chaque cellule (par un If) pour voir si elle est vide.
Voilà, en général, c'est assez rare d'avoir des colonnes vides. Donc s'il y a des lignes vides, il a la possibilité de trier directement.
Voilà un petit exemple qui ne répond pas vraiment à ta question mais te montre l'architecture de code pour y répondre :
Sub CompterCellulesVides()
Dim plage as range, cell as range 'variable représentant la tableau et une cellule
Dim NBVIDES% 'variable dénombrant les cellules vides
Set plage = Range("ton_tableau") 'Affectation de plage - exemple : Range("A1:D20")
for each cell in plage 'pour chaque cellule de mon tableau (chaque cellule de chaque colonne à vrai dire)
if cell.value = "" Then 'si la valeur de la cellule est ""
NBVIDES = NBVIDES + 1 'Incrémentation de NBVIDES
end if
next cell 'prochaine cellule de plage
Msgbox "Ce fichier contient " & NBVIDES & "cellules vides !"
end subCordialement,
Bonjour,
Après relecture de ton post, je crois avoir mieux compris ton besoin. Voici un premier essai qui pourrait marcher :
Option Base 1
Sub CompterCellulesVides()
Dim plage as range, cell as Range
Dim NbCol%, k%, NbVal%, i%
Dim Tab()
Set plage = ActiveSheet.Range("A1").CurrentRegion 'Tableau d'origine
NbCol = plage.columns.count 'nombre colonnes dans plage
for k = 1 to NbCol 'pour chaque colonne de notre tableau d'origine
NbVal = Worksheetfunction.CountA(plage.columns(k)) 'nombre de cellules non vides
Redim Tab(NbVal) 'Tableau destiné à accueillir toutes les valeurs de la colonne k de plage
for each cell in plage.columns(k) 'pour chaque cellule de colonne k
if Not cell.value = "" Then 'si la cellule est non vide
i = i + 1 'incrémentation
Tab(i) = cell.value 'Le tableau stocke la ième valeur non vide
end if
next cell
Sheets("OngletOuColler").cells(2, k).Resize(Ubound(Tab)).value = Tab 'copier les valeurs du tableau dans autre onglet
Next i
Sheets("OngletOuColler").Select
end subIl faut cependant que tu ajustes éventuellement avec ta plage à copier et avec ton onglet où seront collées les valeurs.
Cordialement,
Merci beaucoup pour le temps que vous m'accordez, c'est très gentil. Je teste ça au plus vite et reviens vers vous :)