Vba please help me

Fermé
serial-killer Messages postés 20 Date d'inscription mardi 21 août 2007 Statut Membre Dernière intervention 22 mai 2009 - 14 mai 2009 à 11:43
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 14 mai 2009 à 12:48
Bonjour,

je travail en ce moment sur un fichier excel où j'importe des données et je me suis bloqué sur des fonctions qui me permettent de détecter:
1- la dernière cellule remplie de la ligne par exemple ("A1:M1")
2-la zone replie c.à.d ligne et colonne par exemple ("A1:Z200")
afin qu'elle soient sélectionner et qu'elle subissent des transformations merci de m'aider


mon début de code et:
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
( ActiveCell.Offset(-1, 0).Range("A1:M1").Select) là où j'ai le problème au lieu de la plage ("A1:M1") je veu que la cellule "M1" soit détecter automatiquement

et la meme chose pour
ActiveCell.Range("A1:M251").Select je veu que la cellule "M251" soit détecter automatiquement

merci d'avance

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
14 mai 2009 à 12:48
Salut,
alors :
1- la dernière cellule remplie de la ligne par exemple ("A1:M1")

ActiveSheet.Range("A1").Select 'tu te places en A1 si tu veux sélectionner la dernière cell non vide de la 1ère ligne
Do while Activecell <> "" ' tant que la cellule active est non vide
Activecell.Offset(0, 1).Select 'tu sélectionnes la cellule suivante (sur la ligne)
loop 'et hop on recommence
Activecell.Offset(0, -1).Select 'comme ta dernière boucle dit que tu es sur une cell vide il faut sélectionner la précédente...

Pour la question 2 si tu veux sélectionner M251 (par exemple) :

ActiveSheet.Range("A1").Select
Do while Activecell <> ""
Activecell.Offset(1, 0).Select 'tu sélectionnes la cellule suivante (sur la colonne)
loop
Activecell.Offset(-1, 0).Select ' ici tu sélectionnes la dernière cellule non vide de ta colonne "A"

Do while Activecell <> ""
Activecell.Offset(0, 1).Select 'tu sélectionnes la cellule suivante (sur la ligne)
loop
Activecell.Offset(0, -1).Select

et voilà
0