Microsoft 365 SI cellule vide dans la colonne A

  • Initiateur de la discussion Initiateur de la discussion Moreno076
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Moreno076

XLDnaute Impliqué
Bonsoir le forum

Je souhaiterais adapter cette formule.
Si dans la colonne A case vide alors on applique cette formule et on ajoute en plus quantité de la colonne I sinon on laisse son contenu.
SI possible avec une petite variante, si 'RLR'!A:A = date du jour alors écrire "RECEPTIONNEE"

Range("A2").Formula = "=IFERROR(INDEX('RLR'!A:A,MATCH(B2,'RLR'!C:C,0)),"""")"
Range("A2:A" & Derlg).FillDown

Merci
 
Dernière édition:
J'ai fait ça dés le départ

1583581225679.png

Ce n'est pas bon?
 
Faites des essais, vous verrez bien
Le message au début pourrait être transformé en message de confirmation si vous voulez, avec réponse Oui/Non possible.
Laissez quand même l'instruction d'effacement des cellules au début, au cas où il y aurait moins de lignes qu’auparavant. Sinon celles en plus de la dernière fois demeureraient.
 
Avez vous ajouté devant l'instruction WshCible.Cells.ClearContents ?
peut être le nouveau fichier est-il vide ?
Essayez comme ça :
VB:
Sub VerserDonnées(ByVal WshCible As Worksheet, ByVal WbkSource As Workbook)
   WbkSource.Activate
   WbkSource.Worksheets(1).Activate
   ActiveSheet.UsedRange.Select
   If MsgBox("Le contenu présentement sélectionné doit-il remplacer" _
      & vbLf & "celui de la feuille ""[" & ThisWorkbook.Name & "]" & WshCible.Name & """ ?", _
      vbYesNo, "VerserDonnées") = vbNo Then Exit Sub
   WshCible.Cells.ClearContents
   Selection.Copy Destination:=WshCible.[A1]
   End Sub
 
Avez vous ajouté devant l'instruction WshCible.Cells.ClearContents ?
peut être le nouveau fichier est-il vide ?
Essayez comme ça :
VB:
Sub VerserDonnées(ByVal WshCible As Worksheet, ByVal WbkSource As Workbook)
   WbkSource.Activate
   WbkSource.Worksheets(1).Activate
   ActiveSheet.UsedRange.Select
   If MsgBox("Le contenu présentement sélectionné doit-il remplacer" _
      & vbLf & "celui de la feuille ""[" & ThisWorkbook.Name & "]" & WshCible.Name & """ ?", _
      vbYesNo, "VerserDonnées") = vbNo Then Exit Sub
   WshCible.Cells.ClearContents
   Selection.Copy Destination:=WshCible.[A1]
   End Sub
En fait je fais ok pour les feuilles présentées sans vérifier et en fait les feuilles présentées ne correspondent pas. feuilles présentées rupture c est extraction reappro
 
Je ne vois pas comment c'est possible.
Essayez comme ça :
VB:
Sub VerserDonnées(ByVal WshCible As Worksheet, ByVal WbkSource As Workbook)
   Dim RngSource As Range
   Set RngSource = WbkSource.Worksheets(1).UsedRange
   Application.Goto RngSource
   If MsgBox("Actuellement sélectionné :" & vbLf & """" & RngSource.Address(False, False, xlA1, True) & """." _
      & vbLf & "Ce contenu sélectionné doit-il remplacer celui de la feuille :" _
      & vbLf & """[" & ThisWorkbook.Name & "]" & WshCible.Name & """ ?", _
      vbYesNo, "VerserDonnées") = vbNo Then Exit Sub
   WshCible.Cells.ClearContents
   RngSource.Copy Destination:=WshCible.[A1]
   End Sub
 
D'haaaaacord !
La procédure précédente doit être corrigée comme suit :
Code:
Sub ChargementDonnées()
   Dim Chemin As String, RngFic As Range, TFic(), C As Long, NomFic As String, DatFic As Date, WbkDon As Workbook
   Chemin = Me.[CheminDonnées].Value
   Set RngFic = Me.[TabFichiers]: TFic = RngFic.Value
   For C = 2 To 5
      If TFic(3, C) < TFic(6, C) Then
      Set WbkDon = Workbooks.Open(Chemin & TFic(5, C))
      Select Case C
         Case 2: VerserDonnées WshRuptur, WbkDon
         Case 3: VerserDonnées WshExtRea, WbkDon
         Case 4: VerserDonnées WshRécept, WbkDon
         Case 5: VerserDonnées WshCdeCX3, WbkDon
         End Select
      WbkDon.Close SaveChanges:=False
      If VersementOK Then
         TFic(2, C) = TFic(5, C)
         TFic(3, C) = TFic(6, C)
         TFic(4, C) = Now
         End If
      Next C
   End Sub
J'avais mis Case 1 2 3 4 au lieu de 2 3 4 5, oubliant que C était le numéro de colonne dans TFic, et non le numéro de la source, qui commence à la colonne 2

Tout ça ce sont des choses que je ne peux pas tester, n'est-ce pas …
 
D'haaaaacord !
La procédure précédente doit être corrigée comme suit :
Code:
Sub ChargementDonnées()
   Dim Chemin As String, RngFic As Range, TFic(), C As Long, NomFic As String, DatFic As Date, WbkDon As Workbook
   Chemin = Me.[CheminDonnées].Value
   Set RngFic = Me.[TabFichiers]: TFic = RngFic.Value
   For C = 2 To 5
      If TFic(3, C) < TFic(6, C) Then
      Set WbkDon = Workbooks.Open(Chemin & TFic(5, C))
      Select Case C
         Case 2: VerserDonnées WshRuptur, WbkDon
         Case 3: VerserDonnées WshExtRea, WbkDon
         Case 4: VerserDonnées WshRécept, WbkDon
         Case 5: VerserDonnées WshCdeCX3, WbkDon
         End Select
      WbkDon.Close SaveChanges:=False
      If VersementOK Then
         TFic(2, C) = TFic(5, C)
         TFic(3, C) = TFic(6, C)
         TFic(4, C) = Now
         End If
      Next C
   End Sub
J'avais mis Case 1 2 3 4 au lieu de 2 3 4 5, oubliant que C était le numéro de colonne dans TFic, et non le numéro de la source, qui commence à la colonne 2

Tout ça ce sont des choses que je ne peux pas tester, n'est-ce pas …

Pas de soucis le tout c'est de trouver.

Ca ne fonctionne pas là et en bas du coup je remets simplement la ligne? Si vous voulez on peut se créer un chemin commun?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
586
Retour