Recherche cellule vide

cs_Dominike Messages postés 70 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 6 mars 2010 - 27 févr. 2008 à 19:30
cs_Dominike Messages postés 70 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 6 mars 2010 - 28 févr. 2008 à 19:03
Bonsoir à tous !

Nouveau petit souci pour lequel je ne parviens à trouver la solution seul pour le moment.
Je n'ai pas eu de difficulter à trouver la syntaxe VBA pour que la macro sélectionne la première cellule vide d'une ligne du style ...
     "Selection.End(xlToRight)(1, 2).Select"
En revanche, elle ne fonctionne que lorsqu'il n'y a pas de cellule fusionnées.
Or sur cette ligne, toutes les cellules sont groupées (c'est à dire fussionées) par deux.
QQ'un aurait-il l'amabilité de m'apporter de l'aide ?
Un grand merci par avance pour le coup de pouce

-Dominike -

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 févr. 2008 à 20:10
Salut
Le VB de Excel est du VBA --> Catégorie modifiée

Rien compris à ton histoire de cellule vide.
Aucun rapport avec la ligne que tu fournis.
Dans quelle commande apparait cette bribe de code ?
Donne un exemple concret de la présentation de cellule qui pose problème.
Par exemple :
     A      B      C
1   xxx |       |     |
2     xxxxx     |     |
3   xxx | xxxxx |     |

La fusion de cellule fait que, simplement, seule la première colonne existe.
En l'occurence dans cet exemple, B2 n'existe pas.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Dominike Messages postés 70 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 6 mars 2010
27 févr. 2008 à 23:05
Pardonnez si je n'ai pas été clair !
Je précise donc ma demande.
J'ai un bouton qui active une Macro1() dont l'objectif est de'ouvrie la feuille 1 du classeur et selectionner comme cellule active la première cellule vide de la ligne 2
         Sub Macro1()
            Sheets("Feuil1").Select
            Range("A2").Select
            Selection.End(xlToRight)(1, 2).Select
         End Sub
avec cette macro, si A2, B2,  C2 et D2 ne sont pas vides, à l'ouverture de la feuille 1 avec la macro, la cellule active sera E2.
Ca fonctionne parfaitement.

Mais si A2 et B2 sont fusionnées, comme C2 et D2 (etc...) cette macro va sélectionner C2-D2 à l'ouverture alors que la prochaine fusion vide est E2-F2.
Ai-je été plus clair ?

Merci en tout cas d'avoir essayé !
-Dominike -
0
cs_Dominike Messages postés 70 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 6 mars 2010
28 févr. 2008 à 00:03
Je pense avoir trouvé :
   Sub Macro1()
   Sheets("Feuil1").Select
   Range("A2").Select
   Selection.End(xlToRight).Select
   Selection.Offset(0, 1).Select
   End Sub
Merci tout de même et à bientôt sur le forum.
 

-Dominike -
0
cs_Dominike Messages postés 70 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 6 mars 2010
28 févr. 2008 à 00:14
Et flûte et zut et crotte ....! Ca ne fonctionne plus après la deuxième série de 2
Problème toujours non résolu donc.
Je continue mes recherches, mais si le coeur vous en dit, c'est avec plaisir car mes nuits sont courtes parfois...
Bonne nuit quand même à vous et à bientôt.

-Dominike -
0

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

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 févr. 2008 à 00:31
Premièrement, tu devrais te débarrasser de l'habitude de fusionner les cellules. Ça va t'apporter des emm... Tu peux utiliser le formet de cellules et aligner sur plusieurs colonnes, ce qui est beaucoup mieux. Et le "look" est identique.

Pour ton problème, il faut que tu partes de la droite et que tu revienne vers la gauche pour trouver la première cellle vide sur une ligne.

2 méthodes que je préfère:

1- S'il y a au moins une donnée dans la feuille, cette méthode te donnera la première colonne vide, peu importe si les lignes ne sont pas de longueurs identiques
Colonne = Cells.Find("*", Range("A1"),,,xlByColumns,xlPrevious).Column + 1

2- Si tu veux déterminer la ligne (ici 1 ) sur laquelle tu cherches cette cellule vide
Colonne = Cells(1, Columns.Count).End(xlToLeft).Column + 1

Dans les 2 cas, il faut ajouter +1 parce que les formules recherchent la dernière colonne remplie

Le même principe peut être utilisé pour trouver la dernière ligne. Il suffit de modifier un peu...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
cs_Dominike Messages postés 70 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 6 mars 2010
28 févr. 2008 à 19:03
Ben c'était effectivement tout bête. Il faut partir de la droite pour aller à gauche et même avec des cellules fusionnées ça fonctionne impec...
Sub Macro1()
   Sheets("Feuil1").Select
   Range("A2").Select
   Selection.End(xlToLeft).Select
   Selection.Offset(0, 1).Select
   End Sub

Merci à vous et plus particulièrement à MPI2
A bientôt de toute évidence !

-Dominike -
0
Rejoignez-nous