Macro calc insertion ligne sous condition
Résolu
judasperge
Messages postés
153
Date d'inscription
Statut
Membre
Dernière intervention
-
judasperge Messages postés 153 Date d'inscription Statut Membre Dernière intervention -
judasperge Messages postés 153 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous et à toutes,
sous calc je souhaiterais insérer une ligne en dessous de chaque cellule vide d'une colonne donnée (g)
donc la macro devrais rechercher une cellule vide dans la colonne G, ensuite insérer une ligne en dessous de la ligne appartenant à la cellule vide puis recommencer jusqu'à la derniere cellule rempli de la colonne A afin qu'elle s'arrête à un moment donné...
Comme ça c'est peut etre simple mais pour moi c'est du chinois à traduire ça en prog...
j'ai essayé de voir mais do loop if then sur wikipedia mais il me manque vraiment les bases aie aie voili voilou
Merci d'avance
ju
sous calc je souhaiterais insérer une ligne en dessous de chaque cellule vide d'une colonne donnée (g)
donc la macro devrais rechercher une cellule vide dans la colonne G, ensuite insérer une ligne en dessous de la ligne appartenant à la cellule vide puis recommencer jusqu'à la derniere cellule rempli de la colonne A afin qu'elle s'arrête à un moment donné...
Comme ça c'est peut etre simple mais pour moi c'est du chinois à traduire ça en prog...
j'ai essayé de voir mais do loop if then sur wikipedia mais il me manque vraiment les bases aie aie voili voilou
Merci d'avance
ju
A voir également:
- Macro calc insertion ligne sous condition
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Partager photos en ligne - Guide
- Excel cellule couleur si condition texte - Guide
- Mètre en ligne - Guide
- Insertion sommaire word - Guide
2 réponses
salut
on va faire simple :
1. construis ton code pour détecter si la cellule An (ou Gn) est vide
2. construis ton code pour insérer une ligne sous la ligne n.
3. crée une boucle où tu utilises le code construit au point 1 et au point 2
et tu repasses nous voir si tu as des problèmes
on va faire simple :
1. construis ton code pour détecter si la cellule An (ou Gn) est vide
2. construis ton code pour insérer une ligne sous la ligne n.
3. crée une boucle où tu utilises le code construit au point 1 et au point 2
et tu repasses nous voir si tu as des problèmes
Re,
merci de la demarche pebkac,
donc je repasse vous voir car j'ai des problemes...pour peaufiner le code...
j'ai réussi à obtenir a peu prés ce que je veut sauf à quelque point prés : voici le code que j'ai réussi à mixer en farfouillant sur le web et prenant quelques infos par ci par la :
sub fullemptycell()
dim oFeuille as object
dim oCell as object
dim oLigne as object
dim ligne as integer
dim col as integer
dim xcell as integer
dim valeur as integer
dim act as object
oFeuille = thisComponent.Sheets.getByName("mafeuille")
col = 6
act = thiscomponent.currentselection
xcell = act.RangeAddress.EndRow
for ligne = (xcell) to (2-1) step -1
oCell = oFeuille.getCellByPosition(col, (ligne-1))
valeur =oCell.getValue()
if oCell.getString = "" then
oLigne = oFeuille.getRows.getByIndex(ligne)
oligne.cellBackColor = rgb(250,250,80)
thisComponent.currentController.select(oLigne)
wait 500
oFeuille.getRows.insertByIndex(ligne,1)
end if
next ligne
end sub
Seulement j'aimerais :
1 / que cette macro s'applique à toutes les feuilles du classeur (c'est activesheet je crois ....ou l'appliquer..?)
2 / que je ne sois pas obligé de selectionner la derniere cellule avant de lancer la macro (la ca cloche au niveau de la declaration de ma variable "act" mais idem comment mettre la derniere cellule de la colonne A avec endrow..?
merci de votre aide car comme j'ai dit plus haut je ne suis pas un expert et la je bloque !
cordialement,
julien
merci de la demarche pebkac,
donc je repasse vous voir car j'ai des problemes...pour peaufiner le code...
j'ai réussi à obtenir a peu prés ce que je veut sauf à quelque point prés : voici le code que j'ai réussi à mixer en farfouillant sur le web et prenant quelques infos par ci par la :
sub fullemptycell()
dim oFeuille as object
dim oCell as object
dim oLigne as object
dim ligne as integer
dim col as integer
dim xcell as integer
dim valeur as integer
dim act as object
oFeuille = thisComponent.Sheets.getByName("mafeuille")
col = 6
act = thiscomponent.currentselection
xcell = act.RangeAddress.EndRow
for ligne = (xcell) to (2-1) step -1
oCell = oFeuille.getCellByPosition(col, (ligne-1))
valeur =oCell.getValue()
if oCell.getString = "" then
oLigne = oFeuille.getRows.getByIndex(ligne)
oligne.cellBackColor = rgb(250,250,80)
thisComponent.currentController.select(oLigne)
wait 500
oFeuille.getRows.insertByIndex(ligne,1)
end if
next ligne
end sub
Seulement j'aimerais :
1 / que cette macro s'applique à toutes les feuilles du classeur (c'est activesheet je crois ....ou l'appliquer..?)
2 / que je ne sois pas obligé de selectionner la derniere cellule avant de lancer la macro (la ca cloche au niveau de la declaration de ma variable "act" mais idem comment mettre la derniere cellule de la colonne A avec endrow..?
merci de votre aide car comme j'ai dit plus haut je ne suis pas un expert et la je bloque !
cordialement,
julien