Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Insertion VBA

12 réponses
Avatar
Manu
Bonjour,

Je vais tacher d'etre clair,
J'ai dans la colonne A des nombre de 1 à ......
Je souhaiterais inserer une ligne en dessous du N° qu'une boite de dialogue
me demanderais
Exemple :
Quand la boite me poseras la question et si je repond 15, je souhaiterais
qu'il cherche la cellule dans la colonne A qui comporte 15 et quand il
l'aura trouvé, qu'il m'insere une ligne en dessous de celle-ci.
Merci pour toutes aides.

Manu

2 réponses

1 2
Avatar
Daniel.C
Sub test()
Dim Rep, Ligne
Do
Rep = InputBox("Entrez un nombre")
Loop While Not IsNumeric(Rep)
Ligne = Application.Match(CInt(Rep), [A:A], 0)
Ligne = Evaluate("MIN(IF((" & Range("A" & Ligne + 1,
[A65000].End(xlUp)).Address & "<> """")*" & _
"Row(" & Range("A" & Ligne + 1, [A65000].End(xlUp)).Address &
")<>0,Row(" & Range("A" & Ligne + 1, _
[A65000].End(xlUp)).Address & ")))")
If IsNumeric(Ligne) Then
Rows(Ligne).Insert
Rows(Ligne).Select
End If
End Sub

Daniel

Genial Daniel, c'est exactement ce que je souhaitais merci à vous 2, mais
j'abuserais bien en vous demandant encore davantage. Je pose toujours la
question :

Je reprend l'exemple : si je demande le 15 et que 15 ce trouve en A2 alors il
m'insere une ligne en 3, c'est impec si je n'ai pas de cellules vides en
dessous mais ce que je voudrais en plus, c'est que si il y en dessous de A2
des cellules vides, alors je souhaiterais qu'il m'insere cette ligne en
dessous de ces cellules vides

exemple :
A
1 21
2 15
3
4
5 39
6
7 8
8
9 17

Si je demande à la boite de dialogue le nombre 15 alors il faudra qu'il me
l'insere juste au dessus de 39.
Si je demande 8 alors il devrais me l'inserer au dessus de 17

Je sais, j'abuse d'ailleurs, je ne sais meme pas si c'est faisable...

Merci

Manu


Daniel.C" a écrit dans le message de news:

Sub test()
Dim Rep, Ligne
Rep = "a"
Do While Not IsNumeric(Rep)
Rep = InputBox("Entrez un nombre")
Loop
Ligne = Application.Match(CInt(Rep), [A:A], 0)
If IsNumeric(Ligne) Then
Rows(Ligne + 1).Insert
Rows(Ligne + 1).Select
End If
End Sub

Daniel

Super, et Merci Daniel ca fonctionne tres bien, cepandant, je souhaiterais
que ma selection (la surbrillance) reste sur la ligne qui vient de
s'inserer
exemple :
si je repond à la boite de dialogue : 15 et que cette case 15 sur touve en
A32 alors il y aura une ligne vide en dessous alors je voudrais que ma
selection reste sur la ligne 33.

Merci encore

Manu


"Daniel.C" a écrit dans le message de news:
%
Bonjour.

Sub test4()
Dim Rep, Ligne
Rep = "a"
Do While Not IsNumeric(Rep)
Rep = InputBox("Entrez un nombre")
Loop
Ligne = Application.Match(CInt(Rep), [A:A], 0)
If IsNumeric(Ligne) Then
Rows(Ligne + 1).Insert
End If
End Sub

Cordialement.
Daniel

Bonjour,

Je vais tacher d'etre clair,
J'ai dans la colonne A des nombre de 1 à ......
Je souhaiterais inserer une ligne en dessous du N° qu'une boite de
dialogue me demanderais
Exemple :
Quand la boite me poseras la question et si je repond 15, je
souhaiterais qu'il cherche la cellule dans la colonne A qui comporte 15
et quand il l'aura trouvé, qu'il m'insere une ligne en dessous de
celle-ci.
Merci pour toutes aides.

Manu














Avatar
Manu
Impecable, Merci Daniel, et merci à tous, ca fonctionne nickel.

Manu

"Daniel.C" a écrit dans le message de news:
%
Sub test()
Dim Rep, Ligne
Do
Rep = InputBox("Entrez un nombre")
Loop While Not IsNumeric(Rep)
Ligne = Application.Match(CInt(Rep), [A:A], 0)
Ligne = Evaluate("MIN(IF((" & Range("A" & Ligne + 1,
[A65000].End(xlUp)).Address & "<> """")*" & _
"Row(" & Range("A" & Ligne + 1, [A65000].End(xlUp)).Address & ")<>0,Row("
& Range("A" & Ligne + 1, _
[A65000].End(xlUp)).Address & ")))")
If IsNumeric(Ligne) Then
Rows(Ligne).Insert
Rows(Ligne).Select
End If
End Sub

Daniel

Genial Daniel, c'est exactement ce que je souhaitais merci à vous 2, mais
j'abuserais bien en vous demandant encore davantage. Je pose toujours la
question :

Je reprend l'exemple : si je demande le 15 et que 15 ce trouve en A2
alors il m'insere une ligne en 3, c'est impec si je n'ai pas de cellules
vides en dessous mais ce que je voudrais en plus, c'est que si il y en
dessous de A2 des cellules vides, alors je souhaiterais qu'il m'insere
cette ligne en dessous de ces cellules vides

exemple :
A
1 21
2 15
3
4
5 39
6
7 8
8
9 17

Si je demande à la boite de dialogue le nombre 15 alors il faudra qu'il
me l'insere juste au dessus de 39.
Si je demande 8 alors il devrais me l'inserer au dessus de 17

Je sais, j'abuse d'ailleurs, je ne sais meme pas si c'est faisable...

Merci

Manu


Daniel.C" a écrit dans le message de news:

Sub test()
Dim Rep, Ligne
Rep = "a"
Do While Not IsNumeric(Rep)
Rep = InputBox("Entrez un nombre")
Loop
Ligne = Application.Match(CInt(Rep), [A:A], 0)
If IsNumeric(Ligne) Then
Rows(Ligne + 1).Insert
Rows(Ligne + 1).Select
End If
End Sub

Daniel

Super, et Merci Daniel ca fonctionne tres bien, cepandant, je
souhaiterais que ma selection (la surbrillance) reste sur la ligne qui
vient de s'inserer
exemple :
si je repond à la boite de dialogue : 15 et que cette case 15 sur touve
en A32 alors il y aura une ligne vide en dessous alors je voudrais que
ma selection reste sur la ligne 33.

Merci encore

Manu


"Daniel.C" a écrit dans le message de news:
%
Bonjour.

Sub test4()
Dim Rep, Ligne
Rep = "a"
Do While Not IsNumeric(Rep)
Rep = InputBox("Entrez un nombre")
Loop
Ligne = Application.Match(CInt(Rep), [A:A], 0)
If IsNumeric(Ligne) Then
Rows(Ligne + 1).Insert
End If
End Sub

Cordialement.
Daniel

Bonjour,

Je vais tacher d'etre clair,
J'ai dans la colonne A des nombre de 1 à ......
Je souhaiterais inserer une ligne en dessous du N° qu'une boite de
dialogue me demanderais
Exemple :
Quand la boite me poseras la question et si je repond 15, je
souhaiterais qu'il cherche la cellule dans la colonne A qui comporte
15 et quand il l'aura trouvé, qu'il m'insere une ligne en dessous de
celle-ci.
Merci pour toutes aides.

Manu


















1 2