Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Trouver l'adresse de la premiere plage de cellule importées

P

Phil

Guest
Bonjour,
Je débute en VBA, j'aimerai trouver l'adresse de la 1° cellule d'une plage de données importées.

bout de code :
ActiveSheet.Copy
Range("A4"). Activate
ActiveCell.CurrentRegion.Select

Je veux remplacer Range("A4") par l'adresse de la première cellule de la plage!
C'est surement tres simple mais je trouve pas la méthode
merci d'avance
Phil
 
@

@+Thierry

Guest
Salut Phil,

Si tu importes des données tu dois bien pouvoir spécifier où tu les importes dans Excel ? le nom de fichier, le nom de feuille et l'adresse de la celulle ? non ?

Quoiqu'il en soit admettons que tu aies des données qui arrivent n'importe où sur ta feuille... si il s'agit d'un import sur une feuille vierge, tu peux utiliser la Méthode xlCellTypeLastCell (attention par contre car Excel avec cette méthode mémorise les cells vides...Donc si ta feuille n'était pas vierge avant l'import risque de plantage...)

La méthode xlCellTypeFirstCell n'existe pas... Mais dans ton code, vu que c'est pour une CurrentRegion.Select pas de problème çà le fera... A condition que ton import soit cohéhenrent avec un même nombre de lignes par colonnes... Sinon "CurrentRegion.Select" te feras une séléction encadrant la zone...

Voilà je pense que çà répond à ta question
Bon ben, Bon appétit
@+Thierry
 
P

Phil

Guest
Salut Thierry,
Merci pour l'info. Je vais tester xlCellTypeLastCell


>Si tu importes des données tu dois bien pouvoir spécifier où tu les importes dans Excel ? le nom de fichier, le nom de feuille et l'adresse de la celulle ? non ?

En fait non. Le mot import n'est peut-etre pas le bon.

J'ai une feuille Excel Active avec des données dessus (la macro ignore tout de ces données : emplacement, type, etc...).

Je fait une copy : ActiveSheet.Copy.

Sur la nvlle feuille ainsi créer je doit traiter la nvlle feuille, mon pb c'est que j'ignore tout de l'emplacement des cellules contenant des valeurs.

La question aurait pu-etre formulee differemment :
Comment détecter toutes les cellules d'une feuille qui ne sont pas vides, sans devoir parcourir la totalité de la feuille ?
Merci.
 
S

STéphane

Guest
bonjour


pour savoir quelle est la première cellule utilisée dans la feuille
tu peux faire :
msgbox activesheet.usedrange.item(1).address

la plage usedrange peut commencer en A1 ou ailleurs.

bye
Stéphane
 
@

@+Thierry

Guest
Bonsoir STéphane et Phil

Très bien çà "activesheet.usedrange.item(1).address" je ne connais pas, et çà va me servir encore dans plein de trucs

Merci STéphane
@+Thierry
 
@

@+Thierry

Guest
Bonjour STéphane,

J'espère que tu te seras reposé quand tu verras ce post..... Un week end kool...

Je t'avais dit que çà allait me servir un de ces quatres ce "usedrange" et là je n'arrive pas à lui attribuer une valeur Range...
ptet faut que je déclare autrement ?

si t'as utilisé "usedrange" ptet suis complètement à coté, mais l'aide pffff rien qui m'oriente... ou alors pas d'inspiration en ce vendredi soir après une semaine de taf.

enfin voilà ...

Public Celldepart As Range 'Range çà veut passer !!

Sub Initialise()
Celldepart = ActiveSheet.UsedRange.Item(1).Address 'çà plante là !! of course
End Sub

tu imagineras que mon but c'est ...

Sub MacroQuiFaitCi ()
Initialise
Celldepart.CurrentRegion.Select

Sub MacroQuiFaitCa ()
Initialise
Celldepart..... etc
....

çà m'aurait simplifié la vie dans un projet assez lourd déjà...
si t'as une idée...
Bye
@+Thierry
 
S

STéphane

Guest
bonjour


ta syntaxe marche, mais il faut que cette "plage" soit existante, ce'est-à-dire que la plage doit avoir été modifiée


tu peux aussi faire cela :
Set celldepart = ActiveSheet.UsedRange.Item(1)
celldepart.Select


bye
Stéphane
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
704
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…