Insertion VBA

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #18731991
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


Manu
Le #18732141
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" %
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






LSteph
Le #18732131
Bonjour,

tu dis bien comporte et non est égal à...

Sub cInserCherche()
Dim i As Integer, myStr As String
myStr = InputBox("chercher :", "Insérer sous la première occurence", _
"15")
Application.ScreenUpdating = False
With [a1:a100]
For i = .Cells.Count To 1 Step -1
If CStr(.Cells(i)) Like "*" & myStr & "*" Then
.Cells(i).Offset(1).Rows.Insert
End If
Next
End With
End Sub

'lSteph

Manu a écrit :
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




LSteph
Le #18732121
..donc comporte mais pour toutes occurences
(mon code comportait une scorie d'un premier jet)

Sub cInserCherche()
Dim i As Integer, myStr As String
myStr = InputBox("chercher :", "Insérer à chaque occurence","15")
Application.ScreenUpdating = False
With [a1:a100]
For i = .Cells.Count To 1 Step -1
If CStr(.Cells(i)) Like "*" & myStr & "*" Then
.Cells(i).Offset(1).Rows.Insert
End If
Next
End With
End Sub

'lSteph

Manu a écrit :
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




Daniel.C
Le #18732321
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" %
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








Manu
Le #18732521
Effectivement, j'ai dis comporte et c'est une erreur, il faut que ce soit
egal au chiffre taper, mais ca ne change rien pour moi, car dans cette
colonne A, il n'y aura toujours que des nombres entiers de 1 à X.
Mais ce que je souhaite surtout c'est de laisser la selection sur la ligne
inserer, car sur cette nouvelle ligne, je dois ensuite la grouper toujours
au sein de la macro (mais ca je pense paut etre y arriver) puis lui faire de
la mise en forme.
C'est pour cela qu'il est important que cette ligne reste en surbrillance,
et ca me permet egalement de la trouver rapidement.
alors, evidemment j'ai essayé à la fin de la macro select rows ou ce genre
de chose, mais ca ne fonctionne evidemment pas

Merci

"LSteph" e$
..donc comporte mais pour toutes occurences
(mon code comportait une scorie d'un premier jet)

Sub cInserCherche()
Dim i As Integer, myStr As String
myStr = InputBox("chercher :", "Insérer à chaque occurence","15")
Application.ScreenUpdating = False
With [a1:a100]
For i = .Cells.Count To 1 Step -1
If CStr(.Cells(i)) Like "*" & myStr & "*" Then
.Cells(i).Offset(1).Rows.Insert
End If
Next
End With
End Sub

'lSteph

Manu a écrit :
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




Manu
Le #18732491
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"
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" %
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












LSteph
Le #18734021
[a:a].Find(What:=InputBox("Chercher", "Inserer une ligne après",
15)).Offset(1).EntireRow.Insert

--
lSteph

Manu a écrit :
Effectivement, j'ai dis comporte et c'est une erreur, il faut que ce soit
egal au chiffre taper, mais ca ne change rien pour moi, car dans cette
colonne A, il n'y aura toujours que des nombres entiers de 1 à X.
Mais ce que je souhaite surtout c'est de laisser la selection sur la ligne
inserer, car sur cette nouvelle ligne, je dois ensuite la grouper toujours
au sein de la macro (mais ca je pense paut etre y arriver) puis lui faire de
la mise en forme.
C'est pour cela qu'il est important que cette ligne reste en surbrillance,
et ca me permet egalement de la trouver rapidement.
alors, evidemment j'ai essayé à la fin de la macro select rows ou ce genre
de chose, mais ca ne fonctionne evidemment pas

Merci

"LSteph" e$
..donc comporte mais pour toutes occurences
(mon code comportait une scorie d'un premier jet)

Sub cInserCherche()
Dim i As Integer, myStr As String
myStr = InputBox("chercher :", "Insérer à chaque occurence","15")
Application.ScreenUpdating = False
With [a1:a100]
For i = .Cells.Count To 1 Step -1
If CStr(.Cells(i)) Like "*" & myStr & "*" Then
.Cells(i).Offset(1).Rows.Insert
End If
Next
End With
End Sub

'lSteph

Manu a écrit :
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








michdenis
Le #18734151
Quand tu utilises la méthode Find (voir l'aide d'excel sur le sujet)
sans certains paramètres, tu rends l'exécution du code aléatoire.
Et quand pour une raison ou une autre le code se plante, l'usager
peut passer beaucoup de temps à tenter d'en découvrir la source.

Un copier-coller de la remarque de l'aide d'Excel :
'------------------------------
Les paramètres des arguments RechercherDans, Regarder, OrdreRecherche et
RespecterNbreOctets sont enregistrés chaque fois que vous utilisez cette méthode. Si vous
ne spécifiez aucune valeur pour ces arguments lors du prochain appel à la méthode, les
valeurs enregistrées sont utilisées. Le fait de définir ces arguments modifie les
paramètres de la boîte de dialogue Rechercher, ce qui a pour effet de changer les
paramètres enregistrés qui sont utilisés lorsque vous ne spécifiez pas les arguments. Pour
éviter toute ambiguïté, définissez ces arguments explicitement chaque fois que vous
utilisez cette méthode.
'------------------------------
Promis, je n'interviens plus sur tes messages aujourd'hui.
;-)



"LSteph"
[a:a].Find(What:=InputBox("Chercher", "Inserer une ligne après",
15)).Offset(1).EntireRow.Insert

--
lSteph

Manu a écrit :
Effectivement, j'ai dis comporte et c'est une erreur, il faut que ce soit
egal au chiffre taper, mais ca ne change rien pour moi, car dans cette
colonne A, il n'y aura toujours que des nombres entiers de 1 à X.
Mais ce que je souhaite surtout c'est de laisser la selection sur la ligne
inserer, car sur cette nouvelle ligne, je dois ensuite la grouper toujours
au sein de la macro (mais ca je pense paut etre y arriver) puis lui faire de
la mise en forme.
C'est pour cela qu'il est important que cette ligne reste en surbrillance,
et ca me permet egalement de la trouver rapidement.
alors, evidemment j'ai essayé à la fin de la macro select rows ou ce genre
de chose, mais ca ne fonctionne evidemment pas

Merci

"LSteph" e$
..donc comporte mais pour toutes occurences
(mon code comportait une scorie d'un premier jet)

Sub cInserCherche()
Dim i As Integer, myStr As String
myStr = InputBox("chercher :", "Insérer à chaque occurence","15")
Application.ScreenUpdating = False
With [a1:a100]
For i = .Cells.Count To 1 Step -1
If CStr(.Cells(i)) Like "*" & myStr & "*" Then
.Cells(i).Offset(1).Rows.Insert
End If
Next
End With
End Sub

'lSteph

Manu a écrit :
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








LSteph
Le #18734371
Si , si ne te prives pas, d'ailleurs je t'invite à retourner sur l'autre
fil, cela va t'intéresser.

Pour find je suis d'accord ...là j'ai un peu trop simplifié!

;-)

valeurs ou formules ou autres cela peut avoir été l'objet d'une
recherche précédente
Mais avec un minimum ,d'un ou deux paramêtres de plus cela passera dans
toutes les versions

@+

michdenis a écrit :
Quand tu utilises la méthode Find (voir l'aide d'excel sur le sujet)
sans certains paramètres, tu rends l'exécution du code aléatoire.
Et quand pour une raison ou une autre le code se plante, l'usager
peut passer beaucoup de temps à tenter d'en découvrir la source.

Un copier-coller de la remarque de l'aide d'Excel :
'------------------------------
Les paramètres des arguments RechercherDans, Regarder, OrdreRecherche et
RespecterNbreOctets sont enregistrés chaque fois que vous utilisez cette méthode. Si vous
ne spécifiez aucune valeur pour ces arguments lors du prochain appel à la méthode, les
valeurs enregistrées sont utilisées. Le fait de définir ces arguments modifie les
paramètres de la boîte de dialogue Rechercher, ce qui a pour effet de changer les
paramètres enregistrés qui sont utilisés lorsque vous ne spécifiez pas les arguments. Pour
éviter toute ambiguïté, définissez ces arguments explicitement chaque fois que vous
utilisez cette méthode.
'------------------------------
Promis, je n'interviens plus sur tes messages aujourd'hui.
;-)



"LSteph"
[a:a].Find(What:=InputBox("Chercher", "Inserer une ligne après",
15)).Offset(1).EntireRow.Insert

--
lSteph

Manu a écrit :
Effectivement, j'ai dis comporte et c'est une erreur, il faut que ce soit
egal au chiffre taper, mais ca ne change rien pour moi, car dans cette
colonne A, il n'y aura toujours que des nombres entiers de 1 à X.
Mais ce que je souhaite surtout c'est de laisser la selection sur la ligne
inserer, car sur cette nouvelle ligne, je dois ensuite la grouper toujours
au sein de la macro (mais ca je pense paut etre y arriver) puis lui faire de
la mise en forme.
C'est pour cela qu'il est important que cette ligne reste en surbrillance,
et ca me permet egalement de la trouver rapidement.
alors, evidemment j'ai essayé à la fin de la macro select rows ou ce genre
de chose, mais ca ne fonctionne evidemment pas

Merci

"LSteph" e$
..donc comporte mais pour toutes occurences
(mon code comportait une scorie d'un premier jet)

Sub cInserCherche()
Dim i As Integer, myStr As String
myStr = InputBox("chercher :", "Insérer à chaque occurence","15")
Application.ScreenUpdating = False
With [a1:a100]
For i = .Cells.Count To 1 Step -1
If CStr(.Cells(i)) Like "*" & myStr & "*" Then
.Cells(i).Offset(1).Rows.Insert
End If
Next
End With
End Sub

'lSteph

Manu a écrit :
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









Publicité
Poster une réponse
Anonyme