XL 2016 Remplir ligne via un userform

Fabien62

XLDnaute Occasionnel
Bonsoir à tous,

Je tiens à préciser que je ne maîtrise pas le VBA, je suis à la recherche de deux choses pour compléter mon fichier

- Je recherche un code vba le plus simple possible pour afficher/masquer à volonté les colonnes O à AP via un bouton dans l'onglet Saisie, j'ai mis un module nommé colonnes dans le VBA

- J'aimerais pouvoir remplir via un userform les infos dans les colonnes A B C E F L puis OPQ ; STU ; WXY ; AA AB AC ; AE AF AG ; AI AJ AK ; AM AN AO pour chaque nouvelle réservation tout en gardant la possibilité de faire des modifications directement dans le tableau.

Merci pour votre aide

Cordialement
 

Pièces jointes

  • Planning Charge 2019 V3 au 26.10 - Copie.xlsm
    199.3 KB · Affichages: 41

Fabien62

XLDnaute Occasionnel
Bonjour Chalet53,

Par exemple sur le groupe 5, les cases du 6 et 7 novembre devraient être en vert comme sur la ligne groupe 100, les couleurs sont en fonction du statut

Pour le groupe 8, c'est du 5 au 8 novembre et il y aussi pour les groupe à cheval sur octobre novembre aussi, si on saisi à la main ça fonctionne normalement, je pense que c'est le même problème que pour les taxes.

Cordialement
 

CHALET53

XLDnaute Barbatruc
A vérifier
L'année sélectionnée est 2019 (les infos saisies concernent, sauf une, 2018)
Concernant la taxe : j'ai fait une saisie via l'USF. Elle est présente dans l'onglet Taxe
Le groupe 100 n'y est pas : année 2019
Par contre, je ne comprends pas bien le calcul du nombre de personnes mentionnés dans l'onglet Taxe ...
 
Dernière édition:

CHALET53

XLDnaute Barbatruc
Re,
J'ai fait un essai pour isoler les datas des fichiers de travail.
J'ai un fichier paramètres (copie de la feuille Datas)
Enregistrer (pour tester) les deux fichiers dans un même répertoire en commençant par le fichier Paramètres
A l'ouverture des fichiers de travail, les paramètres sont mis à jour
L'ouverture du fichier Fabien62... va générer une erreur : passer outre et réouvrir le fichier ensuite

Les mises à jour des DAtas devra se faire directement dans le fichier paramètres qui est un fichier .xlsx

Les colonnes liées aux Jours fériés ne sont pas intégrées puisque le calcul est automatique à partir de l'année saisie dans la feuille Planning réservations
 

Pièces jointes

  • Paramètres.xlsx
    20.6 KB · Affichages: 24
  • Fabien62 Planning Charge 2019 v4 - Dév.xlsm
    353.4 KB · Affichages: 25
Dernière édition:

Fabien62

XLDnaute Occasionnel
Bonjour Chalet53,

Suis-je bête je n'ai pas fait attention aux années, ce n'est pas moi qui ai fait ces tests :)

Pour la taxe en fait il n'y a pas de calcul, on déclare juste les personnes âgées de plus de 13 ans

Merci pour l'essaie de BDD, je vais tester ca dans l'après midi

Cordialement
 

Fabien62

XLDnaute Occasionnel
Re Chalet53,

Merci beaucoup pour tout, cela me semble fonctionner, je vais réintégrer les bonnes données pour voir.

Si jamais je souhaites mettre le fichier paramètres ailleurs que dans le même dossier que celui du planning, je dois juste modifier la parie chemin dans le Vba ?

Cordialement
 

CHALET53

XLDnaute Barbatruc
Oui
Le chemin complet suivi de : & fg
Il faut recopier dans tous le fichiers qui doivent faire appel au fichier paramètre
Le programme "récup_données"
Dans Thisworkbook:
le programme ;
Private Sub Workbook_Open()
' Stop
Call récup_données
End Sub
 

Fabien62

XLDnaute Occasionnel
Bonsoir,

Comment adapter le code pour ne copier que les cellules A à G uniquement du fichier paramètres ?

VB:
Sub récup_données()
Dim Wb As Workbook
   Dim Wkb As Workbook
Dim rep As String, Nom_fic(20) As String
Application.ScreenUpdating = False
'Call remiseàblanc

'Récup Liste des fichiers
rep = ActiveWorkbook.Path
nom = ActiveWorkbook.Name
Direction = Dir(rep & "\*.xlsx")
nbfic = 0
While Direction > ""
nbfic = nbfic + 1
Nom_fic(nbfic) = Direction
'MsgBox Nom_fic(nbfic) & " = " & nbfic
Direction = Dir()
Wend
'Stop
'Ouverture
For X = 1 To nbfic
fg = Nom_fic(X)
If fg = nom Then GoTo suite
Dim cpt As Integer
On Error Resume Next

   WOuvert = False
    ' Parcours des classeurs ouverts
   For Each Wkb In Workbooks
        If Wkb.Name = fg Then
            WOuvert = True
            cpt = 1
            Exit For
        End If
    Next Wkb
    If cpt = 1 Then cpt = 0: GoTo fin
chemin = ActiveWorkbook.Path & "\" & fg
If Left(fg, 5) <> "Datas" Then GoTo suite
Workbooks.Open chemin
fin:
Windows(fg).Activate
Sheets("Datas").Activate
derligne = Sheets("Datas").Range("A65536").End(xlUp).Row
dercol = 9
Range(Cells(1, 1), Cells(derligne, dercol)).Select
Selection.Copy
Windows(nom).Activate
Sheets("Datas").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

Windows(fg).Activate
'nom = Mid(fg, 10, 3)
Sheets("Datas").Activate
derligne = Sheets("Datas").Range("A65536").End(xlUp).Row
dercol = 30
Range(Cells(1, 14), Cells(derligne, dercol)).Select
Selection.Copy
Windows(nom).Activate
Sheets("Datas").Activate
Range("N1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

        Windows(fg).Activate
Application.DisplayAlerts = False
ActiveWorkbook.Close
suite:
Next X
'Stop
Application.DisplayAlerts = True
'Stop
Sheets("Saisie réservations").Activate
End Sub

Je ne m'en rappelais plus mais dans les autres fichiers j'ai modifié des petites choses

Cordialement
 

CHALET53

XLDnaute Barbatruc
Sub récup_données()
Dim Wb As Workbook
Dim Wkb As Workbook
Dim rep As String, Nom_fic(20) As String
Application.ScreenUpdating = False
'Call remiseàblanc
'Récup Liste des fichiers
rep = ActiveWorkbook.Path
nom = ActiveWorkbook.Name
Direction = Dir(rep & "\*.xlsx")
nbfic = 0
While Direction > ""
nbfic = nbfic + 1
Nom_fic(nbfic) = Direction
'MsgBox Nom_fic(nbfic) & " = " & nbfic
Direction = Dir()
Wend
'Stop
'Ouverture
For X = 1 To nbfic
fg = Nom_fic(X)
If fg = nom Then GoTo suite
Dim cpt As Integer
On Error Resume Next
WOuvert = False
' Parcours des classeurs ouverts
For Each Wkb In Workbooks
If Wkb.Name = fg Then
WOuvert = True
cpt = 1
Exit For
End If
Next Wkb
If cpt = 1 Then cpt = 0: GoTo fin
chemin = ActiveWorkbook.Path & "\" & fg
If Left(fg, 5) <> "Param" Then GoTo suite
Workbooks.Open chemin
fin:
Windows(fg).Activate
Sheets("Datas").Activate
derligne = Sheets("Datas").Range("A65536").End(xlUp).Row
dercol = 7
Range(Cells(1, 1), Cells(derligne, dercol)).Select
Selection.Copy
Windows(nom).Activate
Sheets("Datas").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Windows(fg).Activate
Application.DisplayAlerts = False
ActiveWorkbook.Close
suite:
Next X
'Stop
Application.DisplayAlerts = True
'Stop
Sheets("Saisie réservations").Activate
End Sub
 

Fabien62

XLDnaute Occasionnel
Bonsoir,

J'ai essayé de déplacé le fichier de Datas dans un dossier mais je n'arrive pas à rendre la macro fonctionnelle :

J'ai le chemin du fichier : C:\Users\XXX\Desktop\XXX\BDD\Datas.xlsx

Je l'intègre donc ainsi ?
VB:
chemin = ActiveWorkbook.Path & "C:\Users\XXX\Desktop\XXX\BDD\Datas.xlsx" & fg

Ne dois-je pas l'ajouter également au niveau de Direction = ?

Merci

Cordialement
 

CHALET53

XLDnaute Barbatruc
Remplacer l'instruction suivante (vers le début) : rep = ActiveWorkbook.Path
par :
rep = "C:\Users\XXX\Desktop\XXX\BDD"

Remplacer l'instruction : chemin = ActiveWorkbook.Path & "\" & fg
par :
chemin = rep & "\" & fg

Puisque la variable rep contient le chemin du fichier Paramètres

Ceci n'est valable qu'avec ce programme présent dans le fichier principal "Planning .....

a+
 

Discussions similaires

Statistiques des forums

Discussions
312 082
Messages
2 085 171
Membres
102 805
dernier inscrit
emes