En fait je veux créer un onglet par bien, cet onglet doit être pré renseigné de façon automatique chaque mois (titre colonne : période) avec processus de validation si le paiement est enregistré. Si non c'est un courrier de relance qui part.Re
Tu veux dire que tu veux créer un onglet mensuel par locataire ?
Il n'y a pas de champs Date dans ton classeur
Normalement, on mets toutes les données sur une seule feuille (qui sert de base de données)
En ligne 1, on mets le nom des champs.
Ensuite c'est avec les TCD qu'on visualises sur des feuilles tierces les données selon les besoins
(par mois, par année etc ..)
On peut aussi utiliser une chronologie
Je fais cela tous les jours.
Une feuille unique en guise de base de données et tout le reste piloté par TCD (un ou plusieurs)
(avec parfois des macros VBA pour les tâches répétitives)
On peut aussi utiliser avec les versions récentes d'Excel: PowerQuery qui est une sorte de "TCD ultra-évolué"
@Staple1600 je devrais donc nommer les onglets avec le champs locataire. Merci pour l'info cela m'évitera des complications par la suiteRe
Pour infos, le nom d'un onglet ne peut dépasser 31 caractères
Donc le contenu de ta colonne Bien ne peut pas être utilisé telle quelle pour crée les onglets.
Sub creation_onglets()
Dim lo As ListObject
Application.ScreenUpdating = False
Set lo = Feuil5.ListObjects("Biens")
For i = 2 To lo.DataBodyRange.Rows.Count + 1
Sheets.Add.Name = UCase(Split(lo.ListColumns(9).Range(i, 1).Value2)(1))
Next
End Sub
@Staple1600Re
Comme je l'ai dit précédemment, le plus simple c'est de créer des TCD à la demande
Par exemple, pour filtrer par locataire, tu mets le champ Locataire dans la section FILTRES du TCD
puis tu sélectionnes le locataire idoine et tu exportes le résultat en PDF par exemple
Bref ma philosophie c'est d'aller au plus simple.
Une base avec toutes les données utilises
Et les visualisations, rapport, export etc sont réalisés grâce aux TCD (et à toutes les options qu'ils offrent.
En bonus, juste pour étude une petite macro que je te laisse tester
NB: G..gle est ton ami pour savoir comment lancer une macro dans ExcelVB:Sub creation_onglets() Dim lo As ListObject Application.ScreenUpdating = False Set lo = Feuil5.ListObjects("Biens") For i = 2 To lo.DataBodyRange.Rows.Count + 1 Sheets.Add.Name = UCase(Split(lo.ListColumns(9).Range(i, 1).Value2)(1)) Next End Sub
Tu devrais trouver au moins 1600 tutos qui te l'expliqueront
Sub CREER_EXEMPLE()
Range("A1:E1") = Array("Locataires", "Biens", "ADRESSE", "CP", "VILLE")
Range("A2:A6").FormulaR1C1 = "=""locataire NOM ""&ROW()-1&"" PRENOM ""&REPT(ROW()-1,15)"
Range("B2:E6").FormulaR1C1 = "=R1C&"" ""&ROW()-1"
Range("A1:E6") = Range("A1:E6").Value
Range("A1:E6").Columns.AutoFit
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$E$6"), , xlYes).Name = "Tableau1"
ActiveSheet.Name = "BASE"
End Sub
Sub Eclater_Tableau()
Dim F As Worksheet, s As Object, tablo, d As Object, i&, a
Set F = Sheets("BASE")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
'---suppression des feuilles existantes---
For Each s In Sheets
If s.Name <> F.Name Then s.Delete
Next s
'---liste sans doublon des feuilles à créer---
tablo = F.ListObjects(1).DataBodyRange.Value
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(tablo)
If tablo(i, 1) <> "" Then d(Left(tablo(i, 1), 31)) = ""
Next i
If d.Count = 0 Then Exit Sub
'---création des feuilles---
a = d.keys
With F.ListObjects(1).DataBodyRange
For i = 0 To UBound(a)
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = a(i)
If ActiveSheet.Name <> a(i) Then MsgBox "Caractère interdit dans '" & a(i) & "' !", 48
.AutoFilter 1, a(i) & IIf(Len(a(i)) = 31, "*", "")
.Copy ActiveSheet.Cells(1)
ActiveSheet.Cells.Columns.AutoFit
Next i
End With
F.ListObjects(1).AutoFilter.ShowAllData
F.Activate
End Sub
Oui et que rédiger, à l'intérieur du classeur (qu'il faut donc téléchargé, puis ouvrir) une demande telle que :Ce qu'Hasco veut dire (avec là aussi un humour en Option Explicit)
Besoin
Via une macro ou un module
récupérer les infos redondantes issus des onglets : Liste_Biens --> automatiquement
créer des sous-totaux par locataire (semestriel, annuel) ----> onglet : Liste_locataire
archiver les locataires partie ---> onglet Liste_locataire
créer un bouton permettant l'affichage par biens, bailleur, ville ---> deux onglets
oui et en quoi contribuez-vous ?je croyais qu'il s'agissait d'un forum contributif ?
Oui et que rédiger, à l'intérieur du classeur (qu'il faut donc téléchargé, puis ouvrir) une demande telle que :
VB:Besoin Via une macro ou un module récupérer les infos redondantes issus des onglets : Liste_Biens --> automatiquement créer des sous-totaux par locataire (semestriel, annuel) ----> onglet : Liste_locataire archiver les locataires partie ---> onglet Liste_locataire créer un bouton permettant l'affichage par biens, bailleur, ville ---> deux onglets
tient plus du cahier des charges que de la demande de 'coup de pouce' parce qu'on est bloqué sur une partie précise du développement de son application.
Répondre à ce genre de demandes serait pour moi, de la concurrence déloyale envers les sociétés de services informatiques.
D'autant que lorsqu'on est une société immobilière, on devrait pouvoir dégager des fonds pour améliorer la gestion des biens qu'on a en charge.
Ici il y a des intervenants bénévoles qui pour certains paient de leur poches (mises à jour logiciel, etc) pour satisfaire les demandes de dépannage.
oui et en quoi contribuez-vous ?
Bonjour @Hasco Pour l'heure je ne contribue en rien mais si j'ai l'opportunité de le faire ce sera sans aucune hésitation si cela rentre dans mes compétences. Vous semblez m'avoir prise en "grippe" j'en ignore la raison. Je ne vous ai pas sollicité en particulier. Pour ton information je ne travaille pas, j'essaie juste un fichier de me former sur les requêtes vba excel, pour le reste je me débrouille. Je demanderai tout de même au modérateur ce qu'il pense de ces échanges car personnellement je n'apprécie pas les attaques gratuites. Bonne fin de journée.Oui et que rédiger, à l'intérieur du classeur (qu'il faut donc téléchargé, puis ouvrir) une demande telle que :
VB:Besoin Via une macro ou un module récupérer les infos redondantes issus des onglets : Liste_Biens --> automatiquement créer des sous-totaux par locataire (semestriel, annuel) ----> onglet : Liste_locataire archiver les locataires partie ---> onglet Liste_locataire créer un bouton permettant l'affichage par biens, bailleur, ville ---> deux onglets
tient plus du cahier des charges que de la demande de 'coup de pouce' parce qu'on est bloqué sur une partie précise du développement de son application.
Répondre à ce genre de demandes serait pour moi, de la concurrence déloyale envers les sociétés de services informatiques.
D'autant que lorsqu'on est une société immobilière, on devrait pouvoir dégager des fonds pour améliorer la gestion des biens qu'on a en charge.
Ici il y a des intervenants bénévoles qui pour certains paient de leur poches (mises à jour logiciel, etc) pour satisfaire les demandes de dépannage.
oui et en quoi contribuez-vous ?
Bonjour @Staple1600 oui j'ai fais le test, je vais travailler pour améliorer ce code. Je n'ose même plus demander de l'aide au risque d'être prise à partie sur ce forum. Si j'avais su j'aurais passé mon chemin.Bonsoir Malika27
Tu as fait le test du message#23 ?
Tu veux améliorer mon code?Malika¸ qui ne doute de rien à dit:oui j'ai fais le test, je vais travailler pour améliorer ce code
Logiquement en tant que débutante, tu aurais du me poser des questions, non ?mais je ne suis pas très à l'aise avec l'environnement requête vba ou module.
Bonsoir,Re
En écrivant des choses de ce genre, c'est mal parti
Tu veux améliorer mon code?
Mazette!
J'aimerai bien voir quelle amélioration tu pourras apporter étant donné que ce n'est qu'un code de test censé vanter les mérites du TCD vs le VBA.
Si tu as fais le test, tu n'as pas de questions?
Car qui a écrit ?
Logiquement en tant que débutante, tu aurais du me poser des questions, non ?
NB: Tu n'es pas prise à partie.
(Certains d'entre nous sont juste francs et directs)
Mais peux-tu répondre à cette question?
Pourquoi tu n'as pas lu la charte du forum lors de ton inscription?
(Alors qu'il est demandé de le faire)
Cela t'aurait éviter quelques déconvenues