Fixer l'emplacement d'une cellule si non vide

active cell

Bonjour,

J'aimerais connaitre la formule pour inscrire la valeur du "activecell" (en bleu) avec un décalage de 5 lignes sur la même colonne si (0,0) est non vide.

Merci par avance

Bonjour,

Eh bien, eh bien ...

Pas certain que cette demande soit très claire.

Offset permet un décalage. En l'occurrence, tu lui demandes un décalage de 0 lignes et 0 colonnes. Et ta cellule ne sera pas non vide, puisque tu boucles auparavant jusqu'à trouver une cellule vide et t'y mettre.

Quant au décalage de 5 lignes sur la même colonne, que veux-tu vraiment ?

Merci 21Formatic d'avoir pris connaissance de ma demande.

Je vais essayé de t'expliquer mon souhait.

J'ai créé un tableau.

La cellule que j'ai prédéfinie par (0,0) s'inscrit comme je le souhaite

Mais si j'ajoute une 2eme valeur, toujours issue de ma combobox "combopilote" celle ci s'inscrit juste en dessous de la 1ere saisie et j'aurais aimé qu'elle s'inscrive 5 lignes en dessous.

Voilà ce que souhaite sue l'image jointe

prénom : juliette , valeur obtenu par la combobox qui correspond à ma valeur (0,0)

et je souhaite ,dans cet exemple que victor s'inscrit 5 lignes en dessous et ainsi de suite pour les autres valeurs saisies

sans titre

Merci par avance

Si je comprends bien, tu veux que la 1ère fois que ta macro tourne, ça écrive la valeur de ta combobox just enz dessous de prénom, et les fois d'après ça l'écrive 5 lignes plus bas, c'est ça ?

Si c'est bien ça, fais un copier coller de ton code ici, plutôt qu'une image. Je ne vais pas tout recopier à la main.

oui, c'est bien ça

voilà:

Private Sub CommandButtonvalider_Click()
Dim i As Integer
i = 1
Do While Cells(i, 1) <> ""
Cells(i, 1).Offset(1, 0).Select
i = i + 1
Loop
'choix du pilote
ActiveCell.Offset(0, 0) = Combopilote
'v motogp
ActiveCell.Offset(0, 1).Value = ComboBox1
ActiveCell.Offset(0, 2).Value = TextBox1
ActiveCell.Offset(1, 1).Value = ComboBox2
ActiveCell.Offset(1, 2).Value = TextBox2

Alors peut-être quelque chose comme ceci ?

Si c'est écrit prénom dans la 1ère cellule et rien en dessous, alors on décale d'une ligne. Sinon de 5.

Private Sub CommandButtonvalider_Click()
Dim i As Integer
i = 1
Do While Cells(i, 1) <> ""
i = i + 1
Loop

if cells(i -1,1).value <> "Prénom" then i = i + 5

'choix du pilote
with cells(i,1)
.value = Combopilote

'v motogp
.Offset(0, 1).Value = ComboBox1
.Offset(0, 2).Value = TextBox1
.Offset(1, 1).Value = ComboBox2
.Offset(1, 2).Value = TextBox2
End with

Si, à titre personnel, je ne ferais peut-être pas de la même façon, j'ai essayé de rester le plus proche de ton écriture d'origine. Je te laisse me redire si je me suis trompé ?

Private Sub CommandButtonvalider_Click()

Dim i As Integer

i = 1

Do While Cells(i, 1) <> ""

Cells(i, 1).Offset(1, 0).Select

i = i + 1

Loop

If Cells(i - 1, 1).Value <> "Prénom" Then i = i + 5

'choix du pilote

With Cells(i, 1)

'choix du pilote

.Value = Combopilote

'v motogp

ActiveCell.Offset(0, 1).Value = ComboBox1

ActiveCell.Offset(0, 2).Value = TextBox1

ActiveCell.Offset(1, 1).Value = ComboBox2

ActiveCell.Offset(1, 2).Value = TextBox2

Merci,

Je viens de tester, ce qui se passe ,c'est que la première valeur saisie se positionne à la 5 ligne et en saisissant une 2eme valeur,elle remplace la 1ere toujours en 5eme ligne...

Tu as rajouté 2 choses qui parasitent la procédure.

Dans ton do while, tu as remis la ligne qui sélectionne la cellule. Pourquoi ? Je l'avais enlevé, c'est inutile et du coup ça fausse le reste du code.

Et il faut enlever les activecell devant tous les .Offset à la fin.

On ne sélectionne aucune cellule. C'est inutile quasiment tout le temps et partout, notamment ici.

Private Sub CommandButtonvalider_Click()

Dim i As Integer

i = 1

Do While Cells(i, 1) <> ""

i = i + 1

Loop

If Cells(i - 1, 1).Value <> "Prénom" Then i = i + 5

'choix du pilote

With Cells(i, 1)

'choix du pilote

.Value = Combopilote

'v motogp

.Offset(0, 1).Value = ComboBox1

.Offset(0, 2).Value = TextBox1

.Offset(1, 1).Value = ComboBox2

.Offset(1, 2).Value = TextBox2

End With

End Sub

Excuses pour le Do While...

J'ai modifié mais j'ai toujours le même soucis :

"la première valeur saisie se positionne à la 5 ligne au lieu de la ligne 1 et en saisissant une 2eme valeur,elle remplace la 1ere toujours en 5eme ligne..."

Tu ne voudrais pas partager ton fichier ?

pas de soucis, mais attention , il est bien compliqué pour moi

je suis vraiment un débutant.....

9essai.xlsm (76.95 Ko)

En effet, cela n'allait pas se mettre au bon endroit.

Parce qu'au lieu de prénom, ta cellule en A1 content "Pilotes". Et quand tu as fait la modification, tu as écrit "pilote" à la place. Donc la macro ne trouvait pas de correspondance ....

10 messages et 2heures perdues pour cela.

Pufffffffff....

Je t'ai bien dit que j'étais un débutant

Un grand merci à toi, ça fonctionne

Je vais encore profité de ton expérience de pro,

y a t il moyen que le chiffre inscrit dans mon formulaire (copie ci jointe) 1 dans choix duel puisse être pris en compte dans mon tableau??

Comme il provient d'une combobox en cascade, j'arrive pas à récupérer ce chiffre...je cherche après la commande, mais je trouve pas..

sans titre

Elle s'appelle combobox21. Tu peux récupérer sa valeur comme les autres et la mettre où tu veux.

Mais plus je réfléchis à ton truc et plus ça me semble bancal.

Ta façon de procéder pour coller les valeurs sur ta feuille risque de vite coincer au niveau du traitement des données colonne A.

M'enfin tu nous rediras ça.

Un grand merci pour tes conseils et ton aide

Rechercher des sujets similaires à "fixer emplacement vide"