MACRO renvoit cellule vide

DJARNAUD

XLDnaute Occasionnel
Bonjour à tous,

Voilà, je cherche à faire une macro qui me placerait directement sur les celulles vides d'une ligne donnée.
Un bouton "suivant" permettrait d'accéder à l'éventuelle cellule vide suivante sur cette meme ligne.
Concernant l'indication de la ligne concernée, celle-ci serait déterminée par la celulle selectionné.

Ex: je me place en A2, alors la macro me renverrait sur C2
puis en cliquant sur suivant D2

D'avance merci pour votre aide!
 

Pièces jointes

  • test.xlsx
    8 KB · Affichages: 51

Calvus

XLDnaute Barbatruc
Bonjour Djarnaud, le forum,

Voici ton fichier en retour.
Le code :
VB:
Option Explicit
Sub Deplacer()
If Selection.End(xlToRight) = "" Then Exit Sub
Selection.End(xlToRight).Select
End Sub

A+
 

Pièces jointes

  • test Djarnaud.xlsm
    13.3 KB · Affichages: 47

Calvus

XLDnaute Barbatruc
Re,

Oui pardon, j'avais lu trop vite.
Voici la fichier modification du code :
VB:
Option Explicit
Sub Deplacer()
If Selection.End(xlToRight) = "" Then Exit Sub
If Selection.Offset(, 1) = "" Then Selection.Offset(, 1).Select: Exit Sub
Selection.End(xlToRight).Columns(0).Select
End Sub

A+
 

Calvus

XLDnaute Barbatruc
Re,

Ah ! Je n'avais pas compris que tu voulais aller dans toutes les colonnes.

Alors comme ceci peut être :
VB:
Option Explicit
Sub Deplacer()
If Selection.Offset(, 1) = "" Then Selection.Offset(, 1).Select: Exit Sub
If Selection.Offset(, 1) <> "" And Selection.Offset(, 2) = "" Then Selection.Offset(, 2).Select: Exit Sub
End Sub

A+
 

DJARNAUD

XLDnaute Occasionnel
Arrrf j'ai parlé trop vite lol.
Quand j'ai plusieurs cellules qui contiennent des informations, plus d'une cellule, la macro ne me renvoit pas à la cellule suivante. J'ai regardé le code, si j'ai bien compris, soit il faut que je rajoute des lignes en augmentant le pas, ou alors il faut faire une boucle avec une variable?
Enfin je t'avoue que je ne maîtrise pas trop....

merci
 

Calvus

XLDnaute Barbatruc
Re,

On va y arriver ! ;)
VB:
Option Explicit
Sub Deplacer()
Dim i As Integer
If Selection.Offset(, 1) = "" Then Selection.Offset(, 1).Select: Exit Sub
For i = 1 To 3
If Selection.Offset(, i) <> "" And Selection.Offset(, i + 1) = "" Then Selection.Offset(, i + 1).Select: Exit Sub
Next
End Sub
A+
 

Calvus

XLDnaute Barbatruc
Re,

Pour rester dans la plage de travail sans se déplacer indéfiniment vers la droite :
VB:
Option Explicit
Sub Deplacer()
Dim i As Integer
For i = 1 To 5
If Not Intersect(Selection, Cells(i, 5)) Is Nothing Then Exit Sub
If Not Intersect(Selection, Cells(i, 6)) Is Nothing Then Exit Sub
Next
If Selection.Offset(, 1) = "" Then Selection.Offset(, 1).Select: Exit Sub
For i = 1 To 3
If Selection.Offset(, i) <> "" And Selection.Offset(, i + 1) = "" Then Selection.Offset(, i + 1).Select: Exit Sub
Next
End Sub

A+
 

DJARNAUD

XLDnaute Occasionnel
Bonjour Calvus,

Oui va y arriver ! ;)
Bien vu pour que ça ne se déplace pas indéfiniment vers la droite.
Jai testé, il manque un tout petit truc.
Dans mon tableau j'ai 56 colonne, il se peut donc que la macro rencontre 55 celulles non vides avant d'en rencontrer une vide.
Penses tu pouvoir trouver une solution à cela?

Merci beaucoup
 

Calvus

XLDnaute Barbatruc
Bonjour Djarnaud, le forum,

Comme ceci :
VB:
Option Explicit
Sub Deplacer()
Dim i As Integer, derligne As Integer, dercol As Integer
derligne = Range("A" & Rows.Count).End(3).Row
dercol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column

For i = 1 To derligne
If Not Intersect(Selection, Cells(i, dercol)) Is Nothing Then Exit Sub
If Not Intersect(Selection, Cells(i, dercol + 1)) Is Nothing Then Exit Sub
Next
If Selection.Offset(, 1) = "" Then Selection.Offset(, 1).Select: Exit Sub
For i = 1 To dercol
If Selection.Offset(, i) <> "" And Selection.Offset(, i + 1) = "" Then Selection.Offset(, i + 1).Select: Exit Sub
Next
End Sub

Bonne journée
 

Calvus

XLDnaute Barbatruc
Bonjour 00 :),

Bien vu et joli bouton, mais ce que veut Djarnaud, il me semble bien, c'est se déplacer dans toutes les cellules vides.
J'ai donc l'impression que mon code va l'emporter :p
Ce serait la 1ère fois, et là, Champagne !
Je viens te chercher ce soir et on va fêter ça ! ;)

A bientôt :)
 

DJARNAUD

XLDnaute Occasionnel
Bonjour Double Zéro, Bonjour Calvus,
Je te remecie pour ta contribution DoubleZéro! Trés joli bouton d'ailleurs!
Effectivement Calvus a bien compris mon besoin, c'est de passer par toutes les cellules vides et avec ta macro je m'arrête en H6 alors que je voudrai que le curseur continue en k6 etc...

Merci!
 

Discussions similaires

Statistiques des forums

Discussions
312 111
Messages
2 085 396
Membres
102 882
dernier inscrit
Sultan94