OVH Cloud OVH Cloud

recherche cellule suivante

4 réponses
Avatar
christophe
bonjour a tout le monde,

un petit probleme qui pour les spécialiste vba que vous étes ne devrait etre
tres difficle a résoudre!

a l'aide d'une macro je rempli a la volé un feuille et ce que je souhaite
faire est qu'une fois toutes les données inscrites je souhaite faire une mise
en page en recherchant dans la colonne "a" la premiere cellule non vide et
inserer au dessus de celle-ci une ligne, et ensuite la cellule suivante non
vide, inserer au dessus un ligne etc etc jusqu'a la fin des données

merci de votre aide parce la je rame!!!!!

4 réponses

Avatar
michdenis
Bonjour Christophe,

Essaie ceci en adaptant le nom de la feuille et de la colonne si nécessaire

'---------------------------------------
Sub InsérerLigne()

Dim Rg As Range, T As Long
Dim X As Long, G As Long, B As Long

On Error Resume Next
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & Range("A65536").End(xlUp).Row)
Set Rg = Union(Rg.SpecialCells(xlCellTypeConstants), _
Rg.SpecialCells(xlCellTypeFormulas))
On Error GoTo 0
End With
T = Rg.Areas.Count
For B = T To 1 Step -1
X = Rg.Areas(B).Rows.Count
For G = X To 1 Step -1
Rg.Areas(B).Rows(G).EntireRow.Insert
Next
Next
Set Rg = Nothing
End Sub
'---------------------------------------


Salutations!



"christophe" a écrit dans le message de news:
bonjour a tout le monde,

un petit probleme qui pour les spécialiste vba que vous étes ne devrait etre
tres difficle a résoudre!

a l'aide d'une macro je rempli a la volé un feuille et ce que je souhaite
faire est qu'une fois toutes les données inscrites je souhaite faire une mise
en page en recherchant dans la colonne "a" la premiere cellule non vide et
inserer au dessus de celle-ci une ligne, et ensuite la cellule suivante non
vide, inserer au dessus un ligne etc etc jusqu'a la fin des données

merci de votre aide parce la je rame!!!!!
Avatar
christophe
re MichDenis

j'ai essaie ton programme et oui cela me conviens presque a part qu'il
insert a chaque fois une ligne et ce que je souhaite est qu'il n'insere un
ligne que lorsqu"il rencontre un cellule possedant un texte dans la colonne
(a) .
les textes sont de la forme "un seul mot" ou plusieurs mots avec espaces



Bonjour Christophe,

Essaie ceci en adaptant le nom de la feuille et de la colonne si nécessaire

'---------------------------------------
Sub InsérerLigne()

Dim Rg As Range, T As Long
Dim X As Long, G As Long, B As Long

On Error Resume Next
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & Range("A65536").End(xlUp).Row)
Set Rg = Union(Rg.SpecialCells(xlCellTypeConstants), _
Rg.SpecialCells(xlCellTypeFormulas))
On Error GoTo 0
End With
T = Rg.Areas.Count
For B = T To 1 Step -1
X = Rg.Areas(B).Rows.Count
For G = X To 1 Step -1
Rg.Areas(B).Rows(G).EntireRow.Insert
Next
Next
Set Rg = Nothing
End Sub
'---------------------------------------


Salutations!



"christophe" a écrit dans le message de news:
bonjour a tout le monde,

un petit probleme qui pour les spécialiste vba que vous étes ne devrait etre
tres difficle a résoudre!

a l'aide d'une macro je rempli a la volé un feuille et ce que je souhaite
faire est qu'une fois toutes les données inscrites je souhaite faire une mise
en page en recherchant dans la colonne "a" la premiere cellule non vide et
inserer au dessus de celle-ci une ligne, et ensuite la cellule suivante non
vide, inserer au dessus un ligne etc etc jusqu'a la fin des données

merci de votre aide parce la je rame!!!!!





Avatar
michdenis
Bonjour Christophe,

Je n'ai pas trop compris ta remarque...
Ceci s'adresse seulement aux cellules contenant du texte dans la colonne A:A, excluant les cellules contenant une formule, des
valeurs numériques, valeurs logiques ou valeurs d'erreur, le cas échéant.

'----------------------------
Sub InsérerLigne()

Dim Rg As Range, T As Long
Dim X As Long, G As Long, B As Long

On Error Resume Next
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & Range("A65536").End(xlUp).Row)
Set Rg = Rg.SpecialCells(xlCellTypeConstants, xlTextValues)
If err<>0 then err=0: Exit sub
End With
T = Rg.Areas.Count
For B = T To 1 Step -1
X = Rg.Areas(B).Rows.Count
For G = X To 1 Step -1
Rg.Areas(B).Rows(G).EntireRow.Insert
Next
Next
Set Rg = Nothing
End Sub
'----------------------------


Salutations!



"christophe" a écrit dans le message de news:
re MichDenis

j'ai essaie ton programme et oui cela me conviens presque a part qu'il
insert a chaque fois une ligne et ce que je souhaite est qu'il n'insere un
ligne que lorsqu"il rencontre un cellule possedant un texte dans la colonne
(a) .
les textes sont de la forme "un seul mot" ou plusieurs mots avec espaces



Bonjour Christophe,

Essaie ceci en adaptant le nom de la feuille et de la colonne si nécessaire

'---------------------------------------
Sub InsérerLigne()

Dim Rg As Range, T As Long
Dim X As Long, G As Long, B As Long

On Error Resume Next
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & Range("A65536").End(xlUp).Row)
Set Rg = Union(Rg.SpecialCells(xlCellTypeConstants), _
Rg.SpecialCells(xlCellTypeFormulas))
On Error GoTo 0
End With
T = Rg.Areas.Count
For B = T To 1 Step -1
X = Rg.Areas(B).Rows.Count
For G = X To 1 Step -1
Rg.Areas(B).Rows(G).EntireRow.Insert
Next
Next
Set Rg = Nothing
End Sub
'---------------------------------------


Salutations!



"christophe" a écrit dans le message de news:
bonjour a tout le monde,

un petit probleme qui pour les spécialiste vba que vous étes ne devrait etre
tres difficle a résoudre!

a l'aide d'une macro je rempli a la volé un feuille et ce que je souhaite
faire est qu'une fois toutes les données inscrites je souhaite faire une mise
en page en recherchant dans la colonne "a" la premiere cellule non vide et
inserer au dessus de celle-ci une ligne, et ensuite la cellule suivante non
vide, inserer au dessus un ligne etc etc jusqu'a la fin des données

merci de votre aide parce la je rame!!!!!





Avatar
christophe
RE:RE
MILLE MERCI A TOI J'AI PU AINSI RESOUDRE MON PROBLEME!!!!

A+

CHRISTOPHE


Bonjour Christophe,

Je n'ai pas trop compris ta remarque...
Ceci s'adresse seulement aux cellules contenant du texte dans la colonne A:A, excluant les cellules contenant une formule, des
valeurs numériques, valeurs logiques ou valeurs d'erreur, le cas échéant.

'----------------------------
Sub InsérerLigne()

Dim Rg As Range, T As Long
Dim X As Long, G As Long, B As Long

On Error Resume Next
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & Range("A65536").End(xlUp).Row)
Set Rg = Rg.SpecialCells(xlCellTypeConstants, xlTextValues)
If err<>0 then err=0: Exit sub
End With
T = Rg.Areas.Count
For B = T To 1 Step -1
X = Rg.Areas(B).Rows.Count
For G = X To 1 Step -1
Rg.Areas(B).Rows(G).EntireRow.Insert
Next
Next
Set Rg = Nothing
End Sub
'----------------------------


Salutations!



"christophe" a écrit dans le message de news:
re MichDenis

j'ai essaie ton programme et oui cela me conviens presque a part qu'il
insert a chaque fois une ligne et ce que je souhaite est qu'il n'insere un
ligne que lorsqu"il rencontre un cellule possedant un texte dans la colonne
(a) .
les textes sont de la forme "un seul mot" ou plusieurs mots avec espaces



Bonjour Christophe,

Essaie ceci en adaptant le nom de la feuille et de la colonne si nécessaire

'---------------------------------------
Sub InsérerLigne()

Dim Rg As Range, T As Long
Dim X As Long, G As Long, B As Long

On Error Resume Next
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & Range("A65536").End(xlUp).Row)
Set Rg = Union(Rg.SpecialCells(xlCellTypeConstants), _
Rg.SpecialCells(xlCellTypeFormulas))
On Error GoTo 0
End With
T = Rg.Areas.Count
For B = T To 1 Step -1
X = Rg.Areas(B).Rows.Count
For G = X To 1 Step -1
Rg.Areas(B).Rows(G).EntireRow.Insert
Next
Next
Set Rg = Nothing
End Sub
'---------------------------------------


Salutations!



"christophe" a écrit dans le message de news:
bonjour a tout le monde,

un petit probleme qui pour les spécialiste vba que vous étes ne devrait etre
tres difficle a résoudre!

a l'aide d'une macro je rempli a la volé un feuille et ce que je souhaite
faire est qu'une fois toutes les données inscrites je souhaite faire une mise
en page en recherchant dans la colonne "a" la premiere cellule non vide et
inserer au dessus de celle-ci une ligne, et ensuite la cellule suivante non
vide, inserer au dessus un ligne etc etc jusqu'a la fin des données

merci de votre aide parce la je rame!!!!!