Bonjour,
je souhaiterais de l'aide pour un userfrom.
la connection des données avec le userform ne se fait pas, je souhaite pouvoir modifier les données existantes via le userform ou ajouter une personnes
et effectuer une recherche.
Merci par avance pour vos réponses
Bonjour fredobogoss
Bonjour le Fil ,le Forum
Francois , très beau travail!
je me suis permis de rajouter en tête de la Procédure Groupe().
VB:
Sub Groupe()
Application.ScreenUpdating = False
'CODE
'puis à la Fin de cette même procédure
Application.ScreenUpdating = True
End Sub
je me pose une question , il n'y a pas a tenir compte des Dates
je m'explique , il n'y a pas dans cette BD de cas ou l'on pourrait trouver par exemple :
c'est a dire une même Chambre (326) avec des occupations(Dates Différentes) 07/03/2018 et 08/03/2018
Bonne journée
jean marie
non il y pas de cas ou tu peux trouver de date a date comme tu as mentionnée.
dans une chambre il peut y voir 1 ou plusieurs personne max a 4 a 5.
c'est juste pour m'aider a faire des étiquettes plus rapidement. je regroupe sur une seul étiquettes le nom de toutes les personnes ayant la même chambre.
le post #24 est m'a proposer une solution qui me convient.
je recherche a automatiser le publipostage en un clic pour envoyer les données vers mon model d’étiquettes word.
Sub Groupe()
Dim derlig As Long, ligne As Long
Application.ScreenUpdating = False
Sheets("Par Chambre").Range("a2:f65000").Clear
With Sheets("Client")
derlig = .Range("a" & Rows.Count).End(xlUp).Row
.Range("a2:f" & derlig).Copy Sheets("Par Chambre").Range("a2")
End With
With Sheets("Par Chambre")
ligne = 2
Do While .Cells(ligne, 1) <> ""
If .Cells(ligne, 5).Value = .Cells(ligne + 1, 5).Value Then
.Cells(ligne, 1).Value = .Cells(ligne, 1).Value & Chr(10) & .Cells(ligne + 1, 1).Value
.Cells(ligne, 2).Value = .Cells(ligne, 2).Value & Chr(10) & .Cells(ligne + 1, 2).Value
.Rows(ligne + 1).Delete
Else
ligne = ligne + 1
End If
Loop
End With
Je ne comprends pas pourquoi vous passez par Word pour imprimer. De toute façon moi je ne sais pas automatiser ça. Alors j'aimerais un modèle des étiquettes pour les faire dans une feuille Excel à imprimer.
Pour récupérer le fichier texte il est possible de lire le fichier en VBA. Ça peut être plus rapide que de l'ouvrir avec Excel, mais j'aimerais alors un modèle exact de sa structure.
Mon UserForm permettant de chercher un nom, prénom ou numéro de chambre, soit en les sélectionnant soit en les tapant, vous intéresse-t-il ?
Il permettra aussi de changer le numéro de chambre d'une personne. J'ai déjà retiré de la recherche les dates.
Sub Groupe()
Dim derlig As Long, ligne As Long
Application.ScreenUpdating = False
Sheets("Par Chambre").Range("a2:f65000").Clear
With Sheets("Client")
derlig = .Range("a" & Rows.Count).End(xlUp).Row
.Range("a2:f" & derlig).Copy Sheets("Par Chambre").Range("a2")
End With
With Sheets("Par Chambre")
ligne = 2
Do While .Cells(ligne, 1) <> ""
If .Cells(ligne, 5).Value = .Cells(ligne + 1, 5).Value Then
.Cells(ligne, 1).Value = .Cells(ligne, 1).Value & Chr(10) & .Cells(ligne + 1, 1).Value
.Cells(ligne, 2).Value = .Cells(ligne, 2).Value & Chr(10) & .Cells(ligne + 1, 2).Value
.Rows(ligne + 1).Delete
Else
ligne = ligne + 1
End If
Loop
End With
@fredobogoss : c'est la macro proposée dans le fichier du post #25 de fanfan38 pour le regroupement des données.
VB:
Sub Groupe()
Dim derlig As Long, ligne As Long
Sheets("Par Chambre").Select
Range("A2:F65000").Clear
Sheets("Client").Select
derlig = Range("a2").End(xlDown).Row
Range("A2:F" & derlig).Select
Selection.Copy
Sheets("Par Chambre").Select
Range("A2").Select
ActiveSheet.Paste
Range("A2").Select
ligne = 2
Do While Cells(ligne, 1) <> ""
If Cells(ligne, 5).Value = Cells(ligne + 1, 5).Value Then
Cells(ligne, 1).Value = Cells(ligne, 1).Value & Chr(10) & Cells(ligne + 1, 1).Value
Cells(ligne, 2).Value = Cells(ligne, 2).Value & Chr(10) & Cells(ligne + 1, 2).Value
Rows(ligne + 1).Delete
Else
ligne = ligne + 1
End If
Loop
End Sub
Correction de Lone-wolf ci-dessous
VB:
Sub Groupe()
Dim derlig As Long, ligne As Long
Application.ScreenUpdating = False
Sheets("Par Chambre").Range("a2:f65000").Clear
With Sheets("Client")
derlig = .Range("a" & Rows.Count).End(xlUp).Row
.Range("a2:f" & derlig).Copy Sheets("Par Chambre").Range("a2")
End With
With Sheets("Par Chambre")
ligne = 2
Do While .Cells(ligne, 1) <> ""
If .Cells(ligne, 5).Value = .Cells(ligne + 1, 5).Value Then
.Cells(ligne, 1).Value = .Cells(ligne, 1).Value & Chr(10) & .Cells(ligne + 1, 1).Value
.Cells(ligne, 2).Value = .Cells(ligne, 2).Value & Chr(10) & .Cells(ligne + 1, 2).Value
.Rows(ligne + 1).Delete
Else
ligne = ligne + 1
End If
Loop
End With
@fredobogoss : c'est la macro proposée dans le fichier du post #25 de fanfan38 pour le regroupement des données.
VB:
Sub Groupe()
Dim derlig As Long, ligne As Long
Sheets("Par Chambre").Select
Range("A2:F65000").Clear
Sheets("Client").Select
derlig = Range("a2").End(xlDown).Row
Range("A2:F" & derlig).Select
Selection.Copy
Sheets("Par Chambre").Select
Range("A2").Select
ActiveSheet.Paste
Range("A2").Select
ligne = 2
Do While Cells(ligne, 1) <> ""
If Cells(ligne, 5).Value = Cells(ligne + 1, 5).Value Then
Cells(ligne, 1).Value = Cells(ligne, 1).Value & Chr(10) & Cells(ligne + 1, 1).Value
Cells(ligne, 2).Value = Cells(ligne, 2).Value & Chr(10) & Cells(ligne + 1, 2).Value
Rows(ligne + 1).Delete
Else
ligne = ligne + 1
End If
Loop
End Sub
VB:
Sub Groupe()
Dim derlig As Long, ligne As Long
Application.ScreenUpdating = False
Sheets("Par Chambre").Range("a2:f65000").Clear
With Sheets("Client")
derlig = .Range("a" & Rows.Count).End(xlUp).Row
.Range("a2:f" & derlig).Copy Sheets("Par Chambre").Range("a2")
End With
With Sheets("Par Chambre")
ligne = 2
Do While .Cells(ligne, 1) <> ""
If .Cells(ligne, 5).Value = .Cells(ligne + 1, 5).Value Then
.Cells(ligne, 1).Value = .Cells(ligne, 1).Value & Chr(10) & .Cells(ligne + 1, 1).Value
.Cells(ligne, 2).Value = .Cells(ligne, 2).Value & Chr(10) & .Cells(ligne + 1, 2).Value
.Rows(ligne + 1).Delete
Else
ligne = ligne + 1
End If
Loop
End With
malheureusement non j'ai pas vu la différence.
j'ai utilisé la macro hier dans mon formulaire il n'affiche pas toutes les chambres.
le regroupement se fait seulement si je fais un tri croissant d'abord , si j'oublie de faire un tri croissant la macro beug.
ce que je recherche c'est un petit formulaire comme le contrôle F (rechercher) qui me permet de retrouver rapidement un client soit par son nom ou numéro de chambre et rajouter une information manquantes comme son statut et l'age a coté du nom.
car la colonne age a la fusion publipostage ne reste pas a coter de chaque nom et se décale en dessous. @fanfan38, je te tag dessus car il s'agit de la version que tu m'as envoyé.
merci pour votre aide a tous
Sub Groupe()
Dim derlig As Long, ligne As Long
Application.ScreenUpdating = False
Sheets("Par Chambre").Range("a2:f65000").Clear
With Sheets("Client")
derlig = .Range("a" & Rows.Count).End(xlUp).Row
.Range("a2:f" & derlig).Copy Sheets("Par Chambre").Range("a2")
End With
With Sheets("Par Chambre")
ligne = 2
Do While .Cells(ligne, 1) <> ""
If .Cells(ligne, 5).Value = .Cells(ligne + 1, 5).Value Then
.Cells(ligne, 1).Value = .Cells(ligne, 1).Value & Chr(10) & .Cells(ligne + 1, 1).Value
.Cells(ligne, 2).Value = .Cells(ligne, 2).Value & Chr(10) & .Cells(ligne + 1, 2).Value
.Rows(ligne + 1).Delete
Else
ligne = ligne + 1
End If
Loop
End With
Bonjour
ci joint un extrait du fichier txt tel qu'il se télécharge dans le système.
par la suite je convertie en données (données /convertir /delimitée/...) puis je supprime les colonnes que je n'ai plus besoin et je garde seulement le nom prenom date arrivée et de fin et le numero de chambre.
je rajoute deux colonnes un pour l'age et l'autre pour le statut que je dois renseigner manuellement. d'ou j'ai besoin d'un espace pour effectuer une recherche soit par nom ou numero de chambre pour rajouter les infos manquant.
ensuite je fais un tri croissant par numero de chambre et je fais un regroupement par numero de chambre donc toutes les personnes ayant le meme numero de chambre se retrouve ensemble .
et il me reste plus qu'a lier le tout sur word pour effectuer le publispostage.
je n'arrive pas a t'envoyer mon fichier word pour le publipostage car le site ne prend pas cela en compte.
mais en gros ce sont tout les champs (nom prenom, age, date arrivée et de fin, numero de chambre, statut) c'est tout ce qui va sur l'etiquette.
j'utilise la marque Avery. je t'envoi dans un prochain poste la référence des feuilles etiquettes
ce que tu m'as envoye je n'arrive pas a le lire le codbeug.
Bonjour fredobogoss
Bonjour le Fil ,le Forum fredobogoss , j’espère que conformément a la charte les Données du fichier Texte sont anonymisées !
si tel n'était pas le cas fait le nécessaire en supprimant le fichier et en le remplaçant par un autre avec des données non confidentielles .
je travaille toujours , à mon rythme sur ton fichier Lol
Petite question : dois tu pouvoir imprimer qu'une seule Étiquette
ou alors toujours l'ensemble ?
Bonne Journée
Jean amrie
Bonjour.
Si je comprends bien les infos Age et Statut sont uniquement ajoutées par vous ?
Je joins mon travail, corrigé selon ces information.
Je pense que vous ne trouverez pas plus souple ni pratique pour la mise à jour.
Merci de faire vos observations
J'ai lu quelque part que ce système de publipostage de Word (totalement mystérieux pour moi) n'accepte comme source de données que des .xls. S'il faut que mon classeur mette les étiquettes mises en forme dans un nouveau classeur de ce type, ça peut se faire sans problème.
Bonjour fredobogoss
Bonjour le Fil ,le Forum fredobogoss , j’espère que conformément a la charte les Données du fichier Texte sont anonymisées !
si tel n'était pas le cas fait le nécessaire en supprimant le fichier et en le remplaçant par un autre avec des données non confidentielles .
je travaille toujours , à mon rythme sur ton fichier Lol
Petite question : dois tu pouvoir imprimer qu'une seule Étiquette
ou alors toujours l'ensemble ?
Bonne Journée
Jean amrie
Bonjour,
je les imprime tous a tous les deux je recommence cette opération.
s'il y a un loupé sur une coquilles sur une étiquettes, ce serait un plus de pouvoir en sélectionner 2 ou 3 pour refaire un mailling.
merci beaucoup
@fredobogoss
Tu n'as pas répondu à la question quant à la confidentialité ou pas des données de ton fichier ??
(alors que tu cites le message* où la question t'était posée )
Bonjour.
Si je comprends bien les infos Age et Statut sont uniquement ajoutées par vous ?
Je joins mon travail, corrigé selon ces information.
Je pense que vous ne trouverez pas plus souple ni pratique pour la mise à jour.
Merci de faire vos observations
Bonjour Dranreb,
oui je rajoute l'age et le statut a la main
j'ai essayé le le fichier que tu as posté, cela me mentionne des erreurs de compilations.
pour le publipostage oui, ce sont les étiquettes prédéfinies Avery en 3 colonnes et 10 lignes.
ok j'attend ta MAJ pour le mailling. et peux tu m'expliquer comment fonctionne ta macro en cliquant sur bouton ca m'ouvre la page du code