Macro ajout de ligne excel
Résolu
hainlesgens
-
hainlesgens -
hainlesgens -
Bonjour, à tous, j'ai un probleme au travail, je suis actuellement stagiaire dans une pme pmi et je dois pour facilité la lecture de la base de données au salariés, automatisé des requetes SQL en jonglant entre le VBA et les requetes SQL...
le problemes, ne se trouve actuellement pas sur les requetes SQL, mais sur le code VBA...
mon but est que si la valeur de la céllule G14 est égale a 0, une ligne est ajouté entre G14 et G15 sinon ça ne fait rien.
mais je ne comprend pas vraiment le probleme.
j'ai incrémenté une variable ( i ) dans un while pour faire une petite boucle...
quand j'exécute la macro avec pour valeur de ( i ) un chiffre que j'ai choisi et qui n'a aucune utilité, cela fonctionne et me rajoute bien la ligne que je demande...
mais quand pour l'ajout de ligne, je demande a ce qu'il me la rajoute a la ligne ( i : i ), la macro ne fonctionne plus.
je colle ci joint une copie de ma boucle.
merci par avance de votre aide
et désolé si je ne suis pas très clair!
Sub ajoutligne()
'
' ajoutligne Macro
' Macro enregistrée le 09/06/2008 par
''
i = 14 ' début du tableau
While (Cells(i, 7).Value = 1) ' temps que valeur céllule i est égale a 1
i = i + 1 'incrémentation de la position de la céllule,
MsgBox ("valeur différentes!!!")
Wend
i = i - 1
Rows("i:i").Select
Selection.Insert Shift:=xlDown
MsgBox (" ajout de ligne réussis")
le problemes, ne se trouve actuellement pas sur les requetes SQL, mais sur le code VBA...
mon but est que si la valeur de la céllule G14 est égale a 0, une ligne est ajouté entre G14 et G15 sinon ça ne fait rien.
mais je ne comprend pas vraiment le probleme.
j'ai incrémenté une variable ( i ) dans un while pour faire une petite boucle...
quand j'exécute la macro avec pour valeur de ( i ) un chiffre que j'ai choisi et qui n'a aucune utilité, cela fonctionne et me rajoute bien la ligne que je demande...
mais quand pour l'ajout de ligne, je demande a ce qu'il me la rajoute a la ligne ( i : i ), la macro ne fonctionne plus.
je colle ci joint une copie de ma boucle.
merci par avance de votre aide
et désolé si je ne suis pas très clair!
Sub ajoutligne()
'
' ajoutligne Macro
' Macro enregistrée le 09/06/2008 par
''
i = 14 ' début du tableau
While (Cells(i, 7).Value = 1) ' temps que valeur céllule i est égale a 1
i = i + 1 'incrémentation de la position de la céllule,
MsgBox ("valeur différentes!!!")
Wend
i = i - 1
Rows("i:i").Select
Selection.Insert Shift:=xlDown
MsgBox (" ajout de ligne réussis")
A voir également:
- Macro ajout de ligne excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Aller à la ligne excel - Guide
- Partage de photos en ligne - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
3 réponses
Bizarre, ça marche chez moi :
Sub ajoutligne() ' ' ajoutligne Macro ' Macro enregistrée le 09/06/2008 par '' i = 14 ' début du tableau While (Cells(i, 1).Value = 1) ' temps que valeur céllule i est égale a 1 i = i + 1 'incrémentation de la position de la céllule, 'MsgBox ("valeur différentes!!!") Wend 'i = i - 1 Rows(i).Select Selection.Insert Shift:=xlDown MsgBox (" ajout de ligne réussis") End Sub
oui effectivement, ça me rajoute une ligen en i=14
mais il faudrai que cela fonctionne jusqu'a la fin du tableau, qu'a chaque fois que les valeur de g soit =0, la fonction ajoute un ligne entiere dans le tableau, et passe à la suite.
par exemple, si G14 = 1, alors on saute une ligne, et on passe a G15.
si G15=0 alors on passe a G16 et ainsi de suite, si g16 =1 alors on ajoute une ligne entiere.
mais il faudrai que cela fonctionne jusqu'a la fin du tableau, qu'a chaque fois que les valeur de g soit =0, la fonction ajoute un ligne entiere dans le tableau, et passe à la suite.
par exemple, si G14 = 1, alors on saute une ligne, et on passe a G15.
si G15=0 alors on passe a G16 et ainsi de suite, si g16 =1 alors on ajoute une ligne entiere.
en résumé:
Sub ajoutligne() ' ' ajoutligne Macro ' Macro enregistrée le 09/06/2008 par '' i = 14 ' début du tableau While Cells(i, 7).Value <> "" ' temps que valeur céllule n'est pas vide If Cells(i, 7).Value = 0 Then Cells(i + 1, 7).EntireRow.Insert i = i + 1 End If i = i + 1 'incrémentation de la position de la céllule, Wend End Sub
alors j'ai mis up au lieu de down
Cells(i, 7).EntireRow.Insert
Selection.Insert Shift:=xlUp
mais là, sa ne me rajout qu'une seul ligne et après, le programme bug...