OVH Cloud OVH Cloud

Recherche de lignes vides

6 réponses
Avatar
garnote
Bonsoir,

J'ai un certain nombre de feuilles contenant sur la première ligne
(de A1 à A3) les mêmes titres sous lesquels apparaissent des données
numériques (le nombre de lignes est différent d'une feuille à l'autre).
Je veux mettre sur une nouvelle feuille nommée «Nouvel onglet»
les données de chacune des autres feuilles (les unes sous les autres)
Un exemple :
Feuille 1 :
a b c
1 1 1
1 1 1
Feuille 2 :
a b c
2 2 2
2 2 2
2 2 2
Feuille 3 :
a b c
3 3 3

J'ai ajouté une nouvelle feuille nommée «Nouvel onglet»,
j'ai entré a, b, et c de A1 à A3 et je lance cette macro.
Je tente en vain, depuis un nombre incalculable de minutes,
d'obtenir une ligne vierge entre chaque bloc de données et
n'y parviens pas. Auriez-vous une idée me permettant
d'atteindre le nirvana ? Une autre façon de faire, peut-être ?

Sub Feuille_Synthèse()
For Each f In ActiveWorkbook.Worksheets
n = Worksheets("Nouvel onglet").Range("A1").CurrentRegion.Rows.Count
If f.Name <> "Nouvel onglet" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Nouvel onglet").Cells(n + 1, 1)
End If
Next
End Sub

Serge, qui vouera à son sauveur une éternelle reconnaissance :-)

6 réponses

Avatar
Daniel.M
Sergio,

Si j'ai compris:

Sub Feuille_Synthese()
For Each f In ActiveWorkbook.Worksheets
If f.Name <> "Nouvel onglet" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Nouvel onglet").Range("A65536").End(xlUp)(3)
End If
Next
End Sub

Salutations,

Daniel M.

"garnote" wrote in message
news:z1cLc.99736$
Bonsoir,

J'ai un certain nombre de feuilles contenant sur la première ligne
(de A1 à A3) les mêmes titres sous lesquels apparaissent des données
numériques (le nombre de lignes est différent d'une feuille à l'autre).
Je veux mettre sur une nouvelle feuille nommée «Nouvel onglet»
les données de chacune des autres feuilles (les unes sous les autres)
Un exemple :
Feuille 1 :
a b c
1 1 1
1 1 1
Feuille 2 :
a b c
2 2 2
2 2 2
2 2 2
Feuille 3 :
a b c
3 3 3

J'ai ajouté une nouvelle feuille nommée «Nouvel onglet»,
j'ai entré a, b, et c de A1 à A3 et je lance cette macro.
Je tente en vain, depuis un nombre incalculable de minutes,
d'obtenir une ligne vierge entre chaque bloc de données et
n'y parviens pas. Auriez-vous une idée me permettant
d'atteindre le nirvana ? Une autre façon de faire, peut-être ?

Sub Feuille_Synthèse()
For Each f In ActiveWorkbook.Worksheets
n = Worksheets("Nouvel onglet").Range("A1").CurrentRegion.Rows.Count
If f.Name <> "Nouvel onglet" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Nouvel onglet").Cells(n + 1, 1)
End If
Next
End Sub

Serge, qui vouera à son sauveur une éternelle reconnaissance :-)




Avatar
isabelle
salut serge,

une possibilité,

Sub Feuille_Synthèse()
On Error Resume Next
For Each f In ActiveWorkbook.Worksheets
n = Worksheets("Nouvel onglet").Range("A65536").End(xlUp).Row +
1
If f.Name <> "Nouvel onglet" Then
With f.Range("A2").CurrentRegion
x = .Item(.Count).Address
End With
f.Range("A2:" & x).Copy _
Destination:=Worksheets("Nouvel onglet").Cells(n + 1, 1)
End If
Next
End Sub

isabelle


Bonsoir,

J'ai un certain nombre de feuilles contenant sur la première ligne
(de A1 à A3) les mêmes titres sous lesquels apparaissent des données
numériques (le nombre de lignes est différent d'une feuille à l'autre).
Je veux mettre sur une nouvelle feuille nommée «Nouvel onglet»
les données de chacune des autres feuilles (les unes sous les autres)
Un exemple :
Feuille 1 :
a b c
1 1 1
1 1 1
Feuille 2 :
a b c
2 2 2
2 2 2
2 2 2
Feuille 3 :
a b c
3 3 3

J'ai ajouté une nouvelle feuille nommée «Nouvel onglet»,
j'ai entré a, b, et c de A1 à A3 et je lance cette macro.
Je tente en vain, depuis un nombre incalculable de minutes,
d'obtenir une ligne vierge entre chaque bloc de données et
n'y parviens pas. Auriez-vous une idée me permettant
d'atteindre le nirvana ? Une autre façon de faire, peut-être ?

Sub Feuille_Synthèse()
For Each f In ActiveWorkbook.Worksheets
n = Worksheets("Nouvel onglet").Range("A1").CurrentRegion.Rows.Count
If f.Name <> "Nouvel onglet" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Nouvel onglet").Cells(n + 1, 1)
End If
Next
End Sub

Serge, qui vouera à son sauveur une éternelle reconnaissance :-)


Avatar
garnote
Yep! c'est cela :-)
Ne reste plus qu'à faire commencer le
premier bloc sur la ligne 2 plutôt que sur la 3.

Serge

"Daniel.M" a écrit dans le message de
news:
Sergio,

Si j'ai compris:

Sub Feuille_Synthese()
For Each f In ActiveWorkbook.Worksheets
If f.Name <> "Nouvel onglet" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Nouvel
onglet").Range("A65536").End(xlUp)(3)

End If
Next
End Sub

Salutations,

Daniel M.

"garnote" wrote in message
news:z1cLc.99736$
Bonsoir,

J'ai un certain nombre de feuilles contenant sur la première ligne
(de A1 à A3) les mêmes titres sous lesquels apparaissent des données
numériques (le nombre de lignes est différent d'une feuille à l'autre).
Je veux mettre sur une nouvelle feuille nommée «Nouvel onglet»
les données de chacune des autres feuilles (les unes sous les autres)
Un exemple :
Feuille 1 :
a b c
1 1 1
1 1 1
Feuille 2 :
a b c
2 2 2
2 2 2
2 2 2
Feuille 3 :
a b c
3 3 3

J'ai ajouté une nouvelle feuille nommée «Nouvel onglet»,
j'ai entré a, b, et c de A1 à A3 et je lance cette macro.
Je tente en vain, depuis un nombre incalculable de minutes,
d'obtenir une ligne vierge entre chaque bloc de données et
n'y parviens pas. Auriez-vous une idée me permettant
d'atteindre le nirvana ? Une autre façon de faire, peut-être ?

Sub Feuille_Synthèse()
For Each f In ActiveWorkbook.Worksheets
n = Worksheets("Nouvel
onglet").Range("A1").CurrentRegion.Rows.Count


If f.Name <> "Nouvel onglet" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Nouvel onglet").Cells(n + 1, 1)
End If
Next
End Sub

Serge, qui vouera à son sauveur une éternelle reconnaissance :-)








Avatar
isabelle
ou d'ajouter,
Rows(2).Delete Shift:=xlUp

isabelle


Yep! c'est cela :-)
Ne reste plus qu'à faire commencer le
premier bloc sur la ligne 2 plutôt que sur la 3.

Serge

"Daniel.M" a écrit dans le message de
news:
Sergio,

Si j'ai compris:

Sub Feuille_Synthese()
For Each f In ActiveWorkbook.Worksheets
If f.Name <> "Nouvel onglet" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Nouvel
onglet").Range("A65536").End(xlUp)(3)

End If
Next
End Sub

Salutations,

Daniel M.

"garnote" wrote in message
news:z1cLc.99736$
Bonsoir,

J'ai un certain nombre de feuilles contenant sur la première ligne
(de A1 à A3) les mêmes titres sous lesquels apparaissent des données
numériques (le nombre de lignes est différent d'une feuille à l'autre).
Je veux mettre sur une nouvelle feuille nommée «Nouvel onglet»
les données de chacune des autres feuilles (les unes sous les autres)
Un exemple :
Feuille 1 :
a b c
1 1 1
1 1 1
Feuille 2 :
a b c
2 2 2
2 2 2
2 2 2
Feuille 3 :
a b c
3 3 3

J'ai ajouté une nouvelle feuille nommée «Nouvel onglet»,
j'ai entré a, b, et c de A1 à A3 et je lance cette macro.
Je tente en vain, depuis un nombre incalculable de minutes,
d'obtenir une ligne vierge entre chaque bloc de données et
n'y parviens pas. Auriez-vous une idée me permettant
d'atteindre le nirvana ? Une autre façon de faire, peut-être ?

Sub Feuille_Synthèse()
For Each f In ActiveWorkbook.Worksheets
n = Worksheets("Nouvel
onglet").Range("A1").CurrentRegion.Rows.Count


If f.Name <> "Nouvel onglet" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Nouvel onglet").Cells(n + 1, 1)
End If
Next
End Sub

Serge, qui vouera à son sauveur une éternelle reconnaissance :-)










Avatar
isabelle
ou bien ,
If n = 2 Then n = 1

isabelle


ou d'ajouter,
Rows(2).Delete Shift:=xlUp

isabelle


Yep! c'est cela :-)
Ne reste plus qu'à faire commencer le
premier bloc sur la ligne 2 plutôt que sur la 3.

Serge

"Daniel.M" a écrit dans le message de
news:
Sergio,

Si j'ai compris:

Sub Feuille_Synthese()
For Each f In ActiveWorkbook.Worksheets
If f.Name <> "Nouvel onglet" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Nouvel
onglet").Range("A65536").End(xlUp)(3)

End If
Next
End Sub

Salutations,

Daniel M.

"garnote" wrote in message
news:z1cLc.99736$
Bonsoir,

J'ai un certain nombre de feuilles contenant sur la première ligne
(de A1 à A3) les mêmes titres sous lesquels apparaissent des données
numériques (le nombre de lignes est différent d'une feuille à l'autre).
Je veux mettre sur une nouvelle feuille nommée «Nouvel onglet»
les données de chacune des autres feuilles (les unes sous les autres)
Un exemple :
Feuille 1 :
a b c
1 1 1
1 1 1
Feuille 2 :
a b c
2 2 2
2 2 2
2 2 2
Feuille 3 :
a b c
3 3 3

J'ai ajouté une nouvelle feuille nommée «Nouvel onglet»,
j'ai entré a, b, et c de A1 à A3 et je lance cette macro.
Je tente en vain, depuis un nombre incalculable de minutes,
d'obtenir une ligne vierge entre chaque bloc de données et
n'y parviens pas. Auriez-vous une idée me permettant
d'atteindre le nirvana ? Une autre façon de faire, peut-être ?

Sub Feuille_Synthèse()
For Each f In ActiveWorkbook.Worksheets
n = Worksheets("Nouvel
onglet").Range("A1").CurrentRegion.Rows.Count


If f.Name <> "Nouvel onglet" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Nouvel onglet").Cells(n + 1, 1)
End If
Next
End Sub

Serge, qui vouera à son sauveur une éternelle reconnaissance :-)












Avatar
garnote
ou bien ,
If n = 2 Then n = 1
DONC 2 = 1 :-)))


Merci Isabelle et Daniel. Tout baignait dans l'huile.
Mais ne voilà-t-il pas que j'apprends que les lignes vides
ne sont plus désirées because la championne mondiale
des TCD (?) va s'attaquer à la feuille Synthèse.
J'ai fignolé un tipeu et ça donne finalement :

Sub Tout_Sur_Une_Nouvelle_Feuille()
Application.ScreenUpdating = False
Set titre = Worksheets(1).Rows(1)
Worksheets.Add
titre.Copy ActiveSheet.Range("A1")
ActiveSheet.Name = "Synthèse"
For Each f In ActiveWorkbook.Worksheets
n = Worksheets("Synthèse").Range("A1").CurrentRegion.Rows.Count
If f.Name <> "Synthèse" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Synthèse").Cells(n + 1, 1)
End If
Next
ActiveSheet.Move after:=Worksheets(ActiveWorkbook.Worksheets.Count)
End Sub

Serge

"isabelle" a écrit dans le message de
news:
ou bien ,
If n = 2 Then n = 1

isabelle


ou d'ajouter,
Rows(2).Delete Shift:=xlUp

isabelle


Yep! c'est cela :-)
Ne reste plus qu'à faire commencer le
premier bloc sur la ligne 2 plutôt que sur la 3.

Serge

"Daniel.M" a écrit dans le message
de



news:
Sergio,

Si j'ai compris:

Sub Feuille_Synthese()
For Each f In ActiveWorkbook.Worksheets
If f.Name <> "Nouvel onglet" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Nouvel
onglet").Range("A65536").End(xlUp)(3)

End If
Next
End Sub

Salutations,

Daniel M.

"garnote" wrote in message
news:z1cLc.99736$
Bonsoir,

J'ai un certain nombre de feuilles contenant sur la première ligne
(de A1 à A3) les mêmes titres sous lesquels apparaissent des
données





numériques (le nombre de lignes est différent d'une feuille à
l'autre).





Je veux mettre sur une nouvelle feuille nommée «Nouvel onglet»
les données de chacune des autres feuilles (les unes sous les
autres)





Un exemple :
Feuille 1 :
a b c
1 1 1
1 1 1
Feuille 2 :
a b c
2 2 2
2 2 2
2 2 2
Feuille 3 :
a b c
3 3 3

J'ai ajouté une nouvelle feuille nommée «Nouvel onglet»,
j'ai entré a, b, et c de A1 à A3 et je lance cette macro.
Je tente en vain, depuis un nombre incalculable de minutes,
d'obtenir une ligne vierge entre chaque bloc de données et
n'y parviens pas. Auriez-vous une idée me permettant
d'atteindre le nirvana ? Une autre façon de faire, peut-être ?

Sub Feuille_Synthèse()
For Each f In ActiveWorkbook.Worksheets
n = Worksheets("Nouvel
onglet").Range("A1").CurrentRegion.Rows.Count


If f.Name <> "Nouvel onglet" Then
Set ici = f.Range("A1").CurrentRegion.Offset(1, 0)
ici.Copy Worksheets("Nouvel onglet").Cells(n + 1, 1)
End If
Next
End Sub

Serge, qui vouera à son sauveur une éternelle reconnaissance :-)