Modification code VBA importation

an@s

XLDnaute Occasionnel
Bonjour à tous,
dans le fichier ci-inclus (REFAC) j'ai un code qui me permet dans la 1ere feuille d'importer les données du fichier Paie-Mens et dans la 2ème feuille un autre code similaire pour importer les données du fichier Paie-Hor

la différence entre la 1ère et la 2ème feuille c'est dans la 2ème j'ai une colonne (Z) de plus.

donc quand j'ajoute de nouvelle informartion par exemple dans le fichier paie-Mens, une fois je fais l'importation dans la 1ère feuille de REFAC il mis à jour les données du tableau en rajoutant les nouvelles données et dans la colonne Y il la laisse vide pour la compléter manuellement

par contre dans la 2ème feuille du refac en faisant l'importation mettre à jour les données le code supprime les colonnes Y et Z chose qui est faut, il doit garder les données dans ces deux colonnes pour les données déjà existantes et laisse les cellules vide pour les nouvelles données importées

quelqu'un peut m'aider pour rectifier le 2ème code

Merci par avance
 

Pièces jointes

  • REFAC.zip
    104.9 KB · Affichages: 41

an@s

XLDnaute Occasionnel
Bonsoir Dranreb,
désolé mais je suis nul en VBA le code c'est Mr Job qui me l'avait donnée il y'a quelques mois et dont j'ai besoin juste d'une petite rectification que je ne sais pas faire seul...
pouvez vous s'il vous plait me trouver la solution à ça ??
 

Dranreb

XLDnaute Barbatruc
Essayez comme ça, après avoir mis GigIdx en référence dans le projet :
VB:
Option Explicit

Private Sub CommandButton1_Click()
Dim Données As Collection, TRés(), PointPaie As SsGr, Cas As Long, _
   Détail, DétREFAC(), DétPaieH(), L As Long, C As Long
Application.ScreenUpdating = False
With Workbooks.Open(ThisWorkbook.Path & "\Paie-Hor.xlsx")
   Set Données = GigIdx.Gigogne(GigIdx.TableUnique(Me.[A3], .Sheets("Feuil1").[A5]), 4)
  .Close False: End With
ReDim TRés(1 To Données.Count, 1 To 26)
For Each PointPaie In Données
   Cas = 0
   For Each Détail In PointPaie.Co
      If Détail(0) = 0 Then Cas = Cas Or 1: DétREFAC = Détail _
                       Else Cas = Cas Or 2: DétPaieH = Détail
      Next Détail
   L = L + 1
   Select Case Cas
      Case 1: ' Il n'existe que dans cette feuille.
         For C = 1 To 26: TRés(L, C) = DétREFAC(C): Next C
      Case 2: ' If n'existe que dans le Paie-hor.xlsx.
         For C = 1 To 24: TRés(L, C) = DétPaieH(C): Next C
      Case Else: ' Il existe des deux cotés.
         For C = 25 To 26: TRés(L, C) = DétREFAC(C): Next C
         For C = 1 To 24: TRés(L, C) = DétPaieH(C): Next C
         End Select: Next PointPaie
Me.Rows(3).Resize(1000000).ClearContents
Me.[A3].Resize(L, 26).Value = TRés
End Sub
 
Dernière édition:

an@s

XLDnaute Occasionnel
Bonsoir Dranreb,

merci beaucoup pour votre réponse mais comme je vous ai dit je suis nul en VBA, le code je peux le copier dans le developpeur par contre le fonctionnement de l'autre fichier je ne saurai pas le faire...
pouvez vous me renvoyer le fichier complet pour test ??

Cordialement
 

GBEYETIN

XLDnaute Nouveau
bonsoir chers tous et toutes
j'ai besoin de petit coup de main
voici le code
Private Sub btnV_Click() 'validation entrée
Dim m As VbMsgBoxResult
If RechPdtTick(cmbPdt.Value) Then
m = MsgBox("Le produit " & cmbPdt.Value & " est déjà enregistré dans le compte" & vbCr & _
"Confirmez-vous cette nouvelle entrée?", vbQuestion + vbYesNo, "")
If m = vbNo Then Exit Sub
End If
PrepTicket cmbRf.Value, cmbPdt.Value, txtQ.Value, CSng(lbP.Caption)
totalG = totalG + CSng(txtTP.Value)
txtTG.Value = Format(totalG, "0.00")
lbNbA.Caption = Val(lbNbA.Caption) + 1
cmbPdt.Value = "": txtQ.Value = "": lbP.Caption = ""
EnableBtn False
End Sub
à la dixème ligne, excel souligne Format(totalG, "0.00") et met erreur de compilation projet ou bibliothèque introuvab
 

Dranreb

XLDnaute Barbatruc
an@s, Le fonctionnement de l'autre fichier est automatique: il est pourvu d'une procédure d'installation. Une fois celle ci terminée, il ne reste plus qu'à cocher la référence GigIdx dans le projet VBA de votre classeur. C'est lui qui contient la fonction Gigogne et tout ce qu'il faut.
Ça ne servirait à rien que je vous envoie le fichier, la référence ne serait pas bonne puisqu'elle essayerait de charger le GigIdx.xlam d'un emplacement qui n'existe que chez moi.

GBEYTIN, je suis fondé à supposer que votre contrôle txtTG n'existe pas sous ce nom exact.
À l'avenir ouvrez une discussion, n'en squattez pas une existante qui n'a rien à voir, et joignez de préférence un fichier, qu'on puisse vérifier notre réponse.
 
Dernière édition:

an@s

XLDnaute Occasionnel
Re,
merci pour votre réponse je vais essayer de l'installer même si je ne sais pas comment faire exactement mais je vous tiens au courant après un essai
maintenant si j'envois le fichier à d'autres personne il ne va pas marcher chez eux si j'ai bien compris ???
 

GBEYETIN

XLDnaute Nouveau
Bonjour à tous et à toute
mon problème n'est pas encore régler
voici le code:
Private Sub btnV_Click() 'validation entrée
Dim m As VbMsgBoxResult
If RechPdtTick(cmbPdt.Value) Then
m = MsgBox("Le produit " & cmbPdt.Value & " est déjà enregistré dans le compte" & vbCr & _
"Confirmez-vous cette nouvelle entrée?", vbQuestion + vbYesNo, "")
If m = vbNo Then Exit Sub
End If
PrepTicket cmbRf.Value, cmbPdt.Value, txtQ.Value, CSng(lbP.Caption)
totalG Value = totalG + CSng(txtTP.Value)
txtTG.Value = Format(totalG, "0.00")
lbNbA.Caption = Val(lbNbA.Caption) + 1
cmbPdt.Value = "": txtQ.Value = "": lbP.Caption = ""
EnableBtn False
End Sub

après toutes les aides, excel me mets après exécution "variable totalG Value n'est pas déclarer"
prière bien m'aider à le faire
merci d'avance
le fichier est joint. vous pouvez remplir la feuille Pdts pour faire un essai. elle va vous demander d'oter la protection c'est à partir de fichier /oter la protection.
vous allez venir sur la page principale 'Fond' et remplir les formulaire et lancer valider.
 

Pièces jointes

  • Caisse_1.xlsm
    293.9 KB · Affichages: 32

Dranreb

XLDnaute Barbatruc
il ne va pas marcher chez eux si j'ai bien compris
En effet. Mais mettez le quand même déjà au point comme ça. On verra après.
après toutes les aides, excel me mets après exécution "variable totalG Value n'est pas déclarer"
prière bien m'aider à le faire
Vous par contre vous avez mis la référence GigIdx alors que vous n'en avez apparemment pas du tout besoin. Ce serait plutôt la CBxL qui pourrait vous être utile. Je ne vous répondrai plus dans cette discussion ci, ni n'ouvrirai vos classeurs qui sèment le bazar dans l'affichage chez moi.
Déclarez totalG As Double
 

Statistiques des forums

Discussions
312 505
Messages
2 089 067
Membres
104 016
dernier inscrit
Mokson