Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche Données Données et creation d'onglet avec remplissage données

4 réponses
Avatar
Alex
Bonjour =E0 tous,

Je rencontre des soucis, et je ne sais pas comment faire.

Voil=E0, j'ai un onglet "base de donn=E9es", avec 5 colonnes : Nom
Immeuble, Nom Locataire, Etage, nombre de piece, et Loyer.

Mon premier probl=E8me :

Je voudrais cr=E9er autant d'onglet qu'il y de nom d'immeuble. Le nom de
l'onglet portant le nom de l'immeuble. Dans ma base, je peux avoir 20
lignes avec le nom Beaujon et 10 =E0 Lignes avec le nom Gare. Mes lignes
ne sont pas obligatoirement dans l'ordre alpha, mais je veudrais bien
entendu, que cela me fasse qu'un seul onglet Beaujon et qu'un onglet
Gare.

Mon second probl=E8me :

C'est de remplir mon onglet avec les donn=E9es correspondantes. Je
voudrais qu'en fonction du nombre d'etage. Si par exemple l'=E9tage le
plus =E9lev=E9 pour l'immeuble est 4 (=E9tages), que les donn=E9es se
positionnent de la facon suivante, =E0 savoir ceux 1er se positionne
sur ma 4eme ligne, ceux du 2eme sur la 3eme, ceux du 3 sur ma 2eme et
enfin ceux du 4=E8me sur ma 1ere ligne, (normalement j'ai pas de trou
entre les =E9tages) et qu'a chaque fois en commencant par la colonne A
j'ai le nom du locataire sur la colonne B le nombre de pi=E8ce et sur C
le Loyer. Si j'ai un deuxieme locataire pour le m=EAme =E9tage, m=EAme
op=E9ration mais =E0 partir de D, et un 3em =E0 partir de H....

Ma base :


Nom Immeuble Nom Etage Nombre de pi=E8ce Loyer
Alleray A 1 4 1200
Beaujon D 3 4 1200
Relais B 3 4 2300
Tour C 2 4 2880
Tour E 3 3 2300
Alleray E 4 2 1200
Alleray C 2 2 2300
Alleray A 2 2 2880
Alleray A 1 2 1200
Alleray E 1 2 1300
Beaujon B 1 2 1200

Exemple de r=E9sultat sur Alleray sur mon onglet cree Alleray :

E 4 2 1200
C 3 1 1200 E 3 1 1300
A 2 2 2880 C 2 2 2300
A 1 2 1200 F 1 4 1200 F 1 1 800

Merci d'avance pour votre aide.
Cordialement.
Alex

4 réponses

Avatar
JB
Bonsoir,

http://boisgontierjacques.free.fr/pages_site/GestionOnglets.htm#CréationO nglets2

JB

On 6 avr, 19:57, Alex wrote:
Bonjour à tous,

Je rencontre des soucis, et je ne sais pas comment faire.

Voilà, j'ai un onglet "base de données", avec 5 colonnes : Nom
Immeuble, Nom Locataire, Etage, nombre de piece, et Loyer.

Mon premier problème :

Je voudrais créer autant d'onglet qu'il y de nom d'immeuble. Le nom de
l'onglet portant le nom de l'immeuble. Dans ma base, je peux avoir 20
lignes avec le nom Beaujon et 10 à Lignes avec le nom Gare. Mes lignes
ne sont pas obligatoirement dans l'ordre alpha, mais je veudrais bien
entendu, que cela me fasse qu'un seul onglet Beaujon et qu'un onglet
Gare.

Mon second problème :

C'est de remplir mon onglet avec les données correspondantes. Je
voudrais qu'en fonction du nombre d'etage. Si par exemple l'étage le
plus élevé pour l'immeuble est 4 (étages), que les données se
positionnent de la facon suivante, à savoir ceux 1er  se positionne
sur ma 4eme ligne, ceux du 2eme sur la 3eme, ceux du  3 sur ma 2eme et
enfin ceux du 4ème sur ma 1ere ligne, (normalement j'ai pas de trou
entre les étages) et qu'a chaque fois en commencant par la colonne A
j'ai le nom du locataire sur  la colonne B le nombre de pièce et sur C
le Loyer. Si j'ai un deuxieme locataire pour le même étage, même
opération mais à partir de D, et un 3em à partir de H....

Ma base :

Nom Immeuble    Nom     Etage   Nombre de pièce        Loyer
Alleray                  A      1       4                      1200
Beaujon            D    3       4                      1200
Relais            B     3       4                      2300
Tour                     C      2       4                      2880
Tour                   E        3       3                      2300
Alleray                E        4       2                      1200
Alleray                C        2       2                      2300
Alleray                A        2       2                      2880
Alleray                A        1       2                      1200
Alleray                E        1       2                      1300
Beaujon                B        1       2                      1200

Exemple de résultat  sur Alleray  sur mon onglet cree Alleray :

E       4       2       1200
C       3       1       1200    E       3       1       1300
A       2       2       2880    C       2       2       2300
A       1       2       1200    F       1       4       1200    F  1  1 800

Merci d'avance pour votre aide.
Cordialement.
Alex
Avatar
Alex
On 6 avr, 20:02, JB wrote:
Bonsoir,

http://boisgontierjacques.free.fr/pages_site/GestionOnglets.htm#Créatio nOnglets2

JB

On 6 avr, 19:57, Alex wrote:



> Bonjour à tous,

> Je rencontre des soucis, et je ne sais pas comment faire.

> Voilà, j'ai un onglet "base de données", avec 5 colonnes : Nom
> Immeuble, Nom Locataire, Etage, nombre de piece, et Loyer.

> Mon premier problème :

> Je voudrais créer autant d'onglet qu'il y de nom d'immeuble. Le nom d e
> l'onglet portant le nom de l'immeuble. Dans ma base, je peux avoir 20
> lignes avec le nom Beaujon et 10 à Lignes avec le nom Gare. Mes ligne s
> ne sont pas obligatoirement dans l'ordre alpha, mais je veudrais bien
> entendu, que cela me fasse qu'un seul onglet Beaujon et qu'un onglet
> Gare.

> Mon second problème :

> C'est de remplir mon onglet avec les données correspondantes. Je
> voudrais qu'en fonction du nombre d'etage. Si par exemple l'étage le
> plus élevé pour l'immeuble est 4 (étages), que les données se
> positionnent de la facon suivante, à savoir ceux 1er  se positionne
> sur ma 4eme ligne, ceux du 2eme sur la 3eme, ceux du  3 sur ma 2eme e t
> enfin ceux du 4ème sur ma 1ere ligne, (normalement j'ai pas de trou
> entre les étages) et qu'a chaque fois en commencant par la colonne A
> j'ai le nom du locataire sur  la colonne B le nombre de pièce et su r C
> le Loyer. Si j'ai un deuxieme locataire pour le même étage, même
> opération mais à partir de D, et un 3em à partir de H....

> Ma base :

> Nom Immeuble    Nom     Etage   Nombre de pièce        Loyer
> Alleray                  A      1       4                      1200
> Beaujon            D    3       4                      1200
> Relais            B     3       4                      2300
> Tour                     C      2       4                      2880
> Tour                   E        3       3                      2300
> Alleray                E        4       2                      1200
> Alleray                C        2       2                      2300
> Alleray                A        2       2                      2880
> Alleray                A        1       2                      1200
> Alleray                E        1       2                      1300
> Beaujon                B        1       2                      1200

> Exemple de résultat  sur Alleray  sur mon onglet cree Alleray :

> E       4       2       1200
> C       3       1       1200    E       3       1       1300
> A       2       2       2880    C       2       2       2300
> A       1       2       1200    F       1       4       1200    F  1  1 800

> Merci d'avance pour votre aide.
> Cordialement.
> Alex- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Merci, pour ton lien, je vais déjà essayer avec ca, Ca à l'air déj à
bien complet.
Avatar
michdenis
Bonjour,

Un fichier exemple ici : http://cjoint.com/?ebbGGRdHfO

Le contenu de la procédure :

Il faudra que tu modifies le nom de la feuille dans la procédure

'--------------------------------------------------------
Sub test()
Dim Arr(), Rg As Range, C As Range, A As Integer
Dim DerCol As Integer, DerLig As Long, Elt As Variant
Dim Sh As Worksheet, NomFeuille As String

Application.EnableEvents = False
Application.ScreenUpdating = False
NomFeuille = ActiveSheet.Name

With Worksheets("Sheet1") ' Nom à adapter
'adresse de la colonne où sont les agents -> à adapter
With .Range("B1:B" & .Range("B65536").End(xlUp).Row)
.AdvancedFilter xlFilterInPlace, , , True
For Each C In .Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
A = A + 1
ReDim Preserve Arr(1 To A)
Arr(A) = C.Value
Next
End With
.ShowAllData
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row

'Il est pris pour acquis que ton tableau débute en A1
Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With

On Error Resume Next
For Each Elt In Arr
Err = 0
Set Sh = Worksheets(Elt)
If Err = 0 Then
Sh.Cells.Clear
Else
Err = 0
Set Sh = Worksheets.Add(after:=Sheets(Sheets.Count))
Sh.Name = Elt
End If
With Rg
.AutoFilter field:=2, Criteria1:=Elt
.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
End With
Next
Rg.AutoFilter
Worksheets(NomFeuille).Select
Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub
'--------------------------------------------------------




"Alex" a écrit dans le message de groupe de discussion :

Bonjour à tous,

Je rencontre des soucis, et je ne sais pas comment faire.

Voilà, j'ai un onglet "base de données", avec 5 colonnes : Nom
Immeuble, Nom Locataire, Etage, nombre de piece, et Loyer.

Mon premier problème :

Je voudrais créer autant d'onglet qu'il y de nom d'immeuble. Le nom de
l'onglet portant le nom de l'immeuble. Dans ma base, je peux avoir 20
lignes avec le nom Beaujon et 10 à Lignes avec le nom Gare. Mes lignes
ne sont pas obligatoirement dans l'ordre alpha, mais je veudrais bien
entendu, que cela me fasse qu'un seul onglet Beaujon et qu'un onglet
Gare.

Mon second problème :

C'est de remplir mon onglet avec les données correspondantes. Je
voudrais qu'en fonction du nombre d'etage. Si par exemple l'étage le
plus élevé pour l'immeuble est 4 (étages), que les données se
positionnent de la facon suivante, à savoir ceux 1er se positionne
sur ma 4eme ligne, ceux du 2eme sur la 3eme, ceux du 3 sur ma 2eme et
enfin ceux du 4ème sur ma 1ere ligne, (normalement j'ai pas de trou
entre les étages) et qu'a chaque fois en commencant par la colonne A
j'ai le nom du locataire sur la colonne B le nombre de pièce et sur C
le Loyer. Si j'ai un deuxieme locataire pour le même étage, même
opération mais à partir de D, et un 3em à partir de H....

Ma base :


Nom Immeuble Nom Etage Nombre de pièce Loyer
Alleray A 1 4 1200
Beaujon D 3 4 1200
Relais B 3 4 2300
Tour C 2 4 2880
Tour E 3 3 2300
Alleray E 4 2 1200
Alleray C 2 2 2300
Alleray A 2 2 2880
Alleray A 1 2 1200
Alleray E 1 2 1300
Beaujon B 1 2 1200

Exemple de résultat sur Alleray sur mon onglet cree Alleray :

E 4 2 1200
C 3 1 1200 E 3 1 1300
A 2 2 2880 C 2 2 2300
A 1 2 1200 F 1 4 1200 F 1 1 800

Merci d'avance pour votre aide.
Cordialement.
Alex
Avatar
Alex
Merci Denis pour ta réponse,
Je suis en train de tester cela, je reviendrais vers vous, si j'ai
besoin d'autres précisions.
Cordialement.
Alex