Macro Recherche dans un colonne d'excel avec des blancs

erikltt Messages postés 32 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 24 octobre 2019 - 6 juin 2004 à 10:33
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004 - 7 juin 2004 à 16:59
Salut à tous, j'ai parcourus les questions posées avant de poster moi même ma question, et j'ai presque trouvé ce que je cherchais, mais il me reste un problème.

J'aimerais faire une recherche depuis VB dans un fichier excel dans une colonne spécifique.
Cela, j'ai pu le trouver dans les questions posées ici, mais le problème est que ma colonne contient des blancs, et chaque exemple que j'ai pu trouver arrete la recherche lorsqu'il trouve un blanc.
Ma question est donc de savoir comment trouver la fin d'une colonne d'un fichier excel, ou n'ai-je pas le choix de le parcourir du début à la 65536 ligne?

5 réponses

vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008
6 juin 2004 à 12:18
Salut ,

dans tes colonnes excel, tu doit bien en avoir une ou il y a pas de blancs ! tu peux faire ta boucle sur celle-ci

i=1
while cells(i,ta_colonne_sans blanc) <> 0
'ton prog ici
i = i + 1
wend

sinon faut que tu trouves une constante kelke part

j'ai pas vraiment repondu a ta question mais j'essaye de faire avancé le shilmblic

@+
0
Arsena Messages postés 190 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 27 septembre 2005
6 juin 2004 à 14:52
Essaye ça

Trouve la 1er ligne non vide en remontant
DernLig = Cells(65536, COLONNE).End(xlUp).Row

Trouve la 1er ligne non vide en descendant
DernLig = Cells(1, COLONNE).End(xldown).Row

Bonne prog et A+
MD
0
erikltt Messages postés 32 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 24 octobre 2019
6 juin 2004 à 17:58
Arsena : Il faut que je parcours le fichier du début à la fin en relevant les valeurs trouvées, je n'ai sans doute pas le choix d'aller jusqu'à l'extreme fin du fichier excel.
vialstephane : je n'ai hélas aucune colonne sans blanc :/
Merci à vous
0
Arsena Messages postés 190 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 27 septembre 2005
6 juin 2004 à 19:36
voici un petit exemple

je supose que les cellules de la colonne "A" soit sont vide ou elles contiennent des nombres

Private Sub Worksheet_Activate()
'dernière ligne contenant des données
dernlig = Cells(65536, "A").End(xlUp).Row
'Boucle sur les lignes de la colonne
For i = 1 To dernlig
'si la cellule n'est pas vide alors additionne le contenu de la cellule
If Cells(i, "A") <> Empty Then total = total + Cells(i, "A")
Next i

Cells(5, "D") = total
Range(Cells(1, "A"), Cells(dernlig, "A")).Select
End Sub



jespère que ce petit exemple poura t'aider
A+ et bonne soirée
MD
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004
7 juin 2004 à 16:59
bonjour,

en VBA, je fais comme ça à partir d'Access; ça peut peut-être t'aider

Sub definition_zone()

' **************************************************************
' création d'une référence de zone dans un tableau Excel
' **************************************************************

Dim Feuille, Classeur As Variant
Dim Xls As Excel.Workbook
Dim colonne As Integer
Dim ligne As Integer
Dim ligne_début As Integer
Dim colonne_début As Integer

Set Xls = GetObject(path) 'ok
Xls.Application.Visible = True 'ok
Xls.Application.Windows(1).Visible = True 'ok

Xls.Application.ActiveWorkbook.Activate 'ok
Classeur = Xls.Application.ActiveWorkbook.Name 'ok
' nom de la feuille du classeur
Feuille = Xls.Application.Sheets(1).Name
' positionnement sur la dernière cellule du tableau
Xls.Application.Worksheets(1).Cells(1, 1).Select 'ok
Xls.Application.ActiveCell.SpecialCells(xlLastCell).Select 'ok
' initialisation du début
ligne_début = 1
colonne_début = 1
' numéro de colonne et de ligne de la dernière cellule
colonne = Xls.Application.ActiveCell.Column 'ok
ligne = Xls.Application.ActiveCell.Row 'ok
' composition de la référence de la zone à créer
Feuille = Feuille & "'!L" & ligne_début & "C" & colonne_début & ":L" & ligne & "C" & colonne ' ok
' création de la zone de référence
Xls.Application.ActiveWorkbook.Names.Add Name:="nom_de_zone", RefersToR1C1:= _
"='" & Feuille 'ok

Set Xls = Nothing

End Sub

Colibri
0