Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Transfère des données réparties sur des lignes à une base de données

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 !

YANNISE

XLDnaute Junior
Salut le Forum,

Pourriez-vous m’aider à développer une macro pour faire copier des données saisies sur un formulaire et les transferts à une base de données au deuxième feuille

L’objectif est de :

Faire copie les données depuis le formulaire (Feuil1) et les recopies sur la base de donne feuil2

Si un champ est vide alors un message d’alerte se déclenche afin de remplir les informations manquantes

Si seulement la première ligne est remplie mais la deuxième non alors les informations résignaient (ligne 1) seront transférés à la BD

À partir d’une macro déjà utilisée dans un autre projet j’ai essayé de l’appliquer sur ce formulaire mais je ne me suis bloqué sur le fait que :

Si la deuxième ligne est non renseignée alors le message d’alerte se déclenche même si la deuxième ligne est vide

Ci-après le code ainsi que le fichier Excel ci joint

Merci d'avance pour l'aide.

VB:
Sub ctrl_1()

      Dim Reponse As Byte
      Dim PL As Range, Cel As Range, Lettre$, Message$
      Dim Mavariable As String

      'Mavariable = Feuil1.Range("K9").Value

      Set PL = Feuil1.Range("E3,G3,E6,G6,I6,E9,G9,I9")
      For Each Cel In PL
            Select Case Cel.Address(False, False, xlA1)
                  Case "E3": Lettre = "'Commande'"
                  Case "G3": Lettre = "'Date'"
                  Case "E6": Lettre = "'Article'"
                  Case "G6": Lettre = "'Réf.'"
                  Case "I6": Lettre = "'Matricule'"
                  Case "E9": Lettre = "'Article'"
                  Case "G9": Lettre = "'Réf."
                  Case "I9": Lettre = "'Matricule'"

            End Select
            Select Case Cel.Text
                  Case Is = ""
                        Cel.Interior.Color = RGB(255, 46, 46)
                        If Message = "" Then Message = "Champ(s) non renseigné(s) :  " & vbLf & vbLf & Lettre Else Message = Message & ", " & Lettre
                  Case Else: Cel.Interior.ColorIndex = xlColorIndexNone
                  Range("E59,J59").Interior.Color = RGB(221, 235, 247)
            End Select

      Next Cel

      If Message <> "" Then
            MsgBox Message & vbLf & vbLf & vbLf & "Veuillez saisir le champ signalé (s) ", vbCritical + vbOKOnly, "Erreur de saisie"

      Else

            Feuil2.Range("B9999").End(xlUp).Offset(1, 0) = Feuil1.Range("E3")
            Feuil2.Range("C9999").End(xlUp).Offset(1, 0) = Feuil1.Range("G3")

            Feuil2.Range("D9999").End(xlUp).Offset(1, 0) = Feuil1.Range("E6")
            Feuil2.Range("E9999").End(xlUp).Offset(1, 0) = Feuil1.Range("G6")
            Feuil2.Range("F9999").End(xlUp).Offset(1, 0) = Feuil1.Range("I6")

            Feuil2.Range("B9999").End(xlUp).Offset(1, 0) = Feuil1.Range("E3")
            Feuil2.Range("C9999").End(xlUp).Offset(1, 0) = Feuil1.Range("G3")

            Feuil2.Range("D9999").End(xlUp).Offset(1, 0) = Feuil1.Range("E9")
            Feuil2.Range("E9999").End(xlUp).Offset(1, 0) = Feuil1.Range("G9")
            Feuil2.Range("F9999").End(xlUp).Offset(1, 0) = Feuil1.Range("I9")

            Reponse = MsgBox(vbCr & "    " & "Les données ont bien été enregistrées" & vbCr & " " & vbCr & " " & "Voulez-vous effacer les champs de saisie ?" _
                        , vbInformation + vbYesNo, "Enregistrement effectué...")

            Dim i As Long, k As Long
                With Feuil2
                    k = 1
                    For i = 2 To .Range("B" & .Rows.Count).End(xlUp).Row
                        If IsNumeric(.Range("A" & i)) And .Range("B" & i) <> "" Then
                        .Range("A" & i) = k
                            k = k + 1
                            Else
                          End If
                        Next i
                    End With
            If Reponse = 6 Then clear_dn_1

            End If

End Sub
 

Pièces jointes

Solution
Bonjour YANNISE, le fil, le forum

Une petite modif rapide !
VB:
Sub ctrl_1()

      Dim Reponse As Byte
      Dim PL As Range, Cel As Range, Lettre$, Message$
      Dim Mavariable As String
    
      'Mavariable = Feuil1.Range("K9").Value
    
      Set PL = Feuil1.Range("E3,G3,E6,G6,I6")
      For Each Cel In PL
            Select Case Cel.Address(False, False, xlA1)
                  Case "E3": Lettre = "'Commande'"
                  Case "G3": Lettre = "'Date'"
                  Case "E6": Lettre = "'Article'"
                  Case "G6": Lettre = "'Réf.'"
                  Case "I6": Lettre = "'Matricule'"

            End Select
            Select Case Cel.Text
                  Case Is = ""...
Bonjour WarDog, Yannise,

d'habitude, quand on indique un cross posting, on met un lien dessus ; par exemple, c'est ce que j'ai fait dans mon post #8 : voir le point 2) ; deuxième astérisque ; lien bleu « autre sujet ».

ça permet au lecteur du post (modérateur ou non) de vérifier qu'il y a bien eu multipost ; ça permet aussi de voir s'il y a déjà eu des solutions proposées (et si oui lesquelles) ; enfin, ça permet aussi à un contributeur qui aurait commencé une solution de voir s'il y a des infos supplémentaires et / ou un fichier joint par rapport à l'énoncé initial sur XLD.

or justement, malgré la phrase du demandeur YANNISE « Ci-après le code ainsi que le fichier Excel ci-joint », il n'a pas mis de fichier joint dans son post #1 ! j'aurais bien aimé regarder son fichier, et peut-être qu'il l'a joint dans un post d'un autre site ?​

soan
 

bonjour,

Je suis vraiment désolé pour ce conflit inapproprié de ma part.

Vous trouvez ci-joint le fichier demandé

Je m'excuse une autre fois auprès de chacun de vous 🙁
 
J’ai cherché partout sur une solution ça fait des semaines mais sans résultat pratique

Je crois j’ai le droit de la demander à un autre forum si après des jours j’obtiens aucune réponse !!
 
@WarDog

A 60 balais bientôt je pense que ce que je dis est réfléchi

je ne pouvais pas savoir ton âge, et je pense moi aussi que ce que tu dis est réfléchi. 🙂



@soan, même si on ne se connait pas, il est dommage de mettre ma parole en doute 🧐
A 60 balais bientôt...

je ne pouvais pas savoir ton âge, et même sans cela, je suis comme Saint-Thomas : je ne crois que ce que je vois ! donc sans lien ou capture d'écran, je me permets de douter ! 😜 je continue aussi de penser que tout post indiquant qu'il y a un cross-posting doit en fournir la preuve ; sans cela, je ne peux pas le prendre en compte ; et je préfère laisser au demandeur en cause le bénéfice du doute ; comme dit la Loi : l'accusé est innocent jusqu'à preuve du contraire.​



Et je ne pense pas que l'admin ou le modo de ce site seraient contents de voir un lien vers un autre forum 🤔

jusqu'à maint'nant, je n'ai jamais vu un post de leur part indiquant qu'ils désapprouvent un lien qui démontre un cross-posting ; et naturellement, par la force des choses, ce lien pour le démontrer est obligatoirement sur un autre site qu'XLD ! 🙂 y'a pas moyen d'faire autrement ! 😶​



Bien entendu, je suis allé voir, le code est le même...

maint'nant, par rapport à ta copie d'écran et à ta citation ci-dessus : cette fois, c'est ok : tu as bien fourni la preuve qu'il y a effectivement eu cross-posting, et même une preuve formelle vu que le texte est strictement identique ! en plus, tu indiques que le code aussi est identique ; on peut donc être sûr que Niba sur XLP = YANNISE sur XLD ; il n'en reste pas moins que :

1) je suis toujours intéressé par le sujet de YANNISE, même s'il a posté son sujet sur un autre site ; même si c'est sur XLP ; et même si c'est sous le pseudo Niba.

2) YANNISE n'a toujours pas trouvé de solution, c'est pourquoi il continue d'en chercher ; et c'est aussi prouvé par : son post #11 ; le fichier qu'il a joint ; son post #15 qui contient notamment cette phrase : « J’ai cherché partout une solution ça fait des semaines mais sans résultat pratique » ; alors pourquoi viendrait-il demander de l'aide ici s'il avait déjà trouvé une solution ailleurs ? dans ton post #16, tu as écrit : « la solution semble avoir été apportée sur XLP 👎 » ; si c'est seulement « semble », alors ce n'est pas sûr ! et la même question se pose : pourquoi YANNISE demande de l'aide ici s'il a déjà eu une solution ? ma conclusion est logique : YANNISE n'a pas de solution, et il la cherche toujours !

3) quand bien même YANNISE aurait eu une solution, je continue de penser que plusieurs solutions valent mieux qu'une, qui permettent d'avoir plusieurs approches différentes ; et n'oublie pas que même si les solutions apportées ne seraient pas pour YANNISE lui-même, tout lecteur intéressé par le sujet de YANNISE peut trouver un intérêt à lire les solutions qui seraient postées sur ce sujet ; malheureusement, à cause de cette navrante polémique au sujet du cross-posting, ce sujet est devenu rédhibitoire pour beaucoup de membres qui passeraient par ici.

4) quand tu as vu le post #15 de YANNISE, je pensais que tu allais l'aider, et le secourir de façon charitable, comme quelqu'un qui lance une bouée à un naufragé ! mais je me suis trompé là-dessus ; moi, quoique tu puisses en penser, je vais regarder le fichier joint comme si je ne savais pas qu'il y a eu cross-posting ; si je trouve une solution valable, je la posterai, et je rappelle que rien dans la Charte ne l'interdit ; cette solution intéressera sûrement YANISSE vu qu'il a été démontré qu'il n'a pas trouvé de solution ; et comme je l'ai déjà mentionné : même si YANNISE lui-même n'était plus intéressé par son sujet car il aurait trouvé une solution ailleurs, ma solution pourra intéresser d'autres lecteurs ayant le même genre d'exo à résoudre que celui du post #1.

je ne peux jamais garantir que je vais trouver une solution ; donc si je ne posterai plus dans ce sujet, ça voudra dire que je n'ai rien trouvé ; à contrario, je posterai soit une solution, soit une demande d'infos complémentaires s'il manque quelque chose.
soan
 
Dernière édition:
@soan, j'en ai connu des bavards, têtus, obtus et des "je fais ce que je veux"...
mais toi je te décerne la palme 😂

j'ai le droit d'avoir mes opinions et de les défendre, il me semble ! pour ce qui est d'être têtu, crois-moi, je préfère être têtu pour défendre mes opinions plutôt que d'être têtu pour enfoncer quelqu'un qui se noie ! je préfère largement lui lancer une bouée de sauvetage plutôt que de lui enfoncer la tête sous l'eau !

tu ne peux pas nier que YANNISE n'a pas trouvé de solution car je l'ai démontré par a + b ; si malgré ça tu refuses de l'aider, c'est ton choix ! n'en fais pas une généralité : ce n'est pas car toi tu ne veux pas aider que les autres non plus ne doivent pas le faire ! je pense être plus charitable que toi ! quand je pense que tu as commencé la 2ème phrase de ton post #2 par « Je veux aider », ça me fait bien rire ! si ça c'est pas de l'hypocrisie... moi je préfère faire une BA, si toutefois j'arrive à trouver une solution, mais apparemment, tu ne dois pas savoir ce que signifie le sigle BA ! voici un indice : cherche du côté des scouts...

maint'nant, si tu arrives à me montrer dans la Charte un règlement qui interdit de poster une solution sur un sujet où il a été démontré qu'un cross-posting a eu lieu, alors là oui, je m'y conformerai, et je laisserai tomber ce sujet ; mais tel n'est pas le cas, du moins pas à ma connaissance.​



En regardant un peu sur ce forum, je me suis aperçu qu'on pouvait "ignorer" un membre 😜
Tu seras le premier 😂 tu me donnes mal à la tête 🤕

oui, moi aussi, je connais cette possibilité ; je pourrais même en faire autant sur ton compte, si l'envie m'en prenait ; et même, pour sûr, ça me permettrait d'éviter tous tes nombreux posts qui dénoncent le cross-posting ! désolé, mais moi, ça ne me dit rien de faire pareil ! d'une part car je n'aime pas la délation, d'autre part car je préfère aider quand je le peux ; il va de soi que résoudre un exo Excel, avec ou sans VBA, est certainement plus intéressant et constructif que de jouer les dénonciateurs ; mais à chacun ses opinions, n'est-ce pas ? désolé aussi pour ton mal de tête ; je ne t'ai pas forcé à lire mes réponses à tes posts ; rien ne t'oblige à lire mes posts ; je n'ai pas d'aspirine à te passer ; toutefois, je peux te recommander de l'Aspro ; même que c'est encore plus efficace si c'est de l'Aspro effervescent. 🙂



Navré, mais je ne suis pas là pour tout ce bavardage 👎

je n'en doute absolument pas ! surtout que tu es certainement très pressé d'aller poster d'autres dénonciations de cross-posting ; et c'est sûrement plus urgent et gratifiant pour toi que de passer un moment à bavarder avec moi ! 😁 juste une dernière petite remarque en passant : à supposer que tu fermes les yeux quand tu vois du cross-posting, ça t'évitera peut-être des ulcères d'estomac ? 😜 et peut-être aussi que tu pourras avoir meilleure conscience, si tu aides les gens au lieu de les enfoncer ? la Bible ne dit-elle pas qu'il faut s'entraider les uns les autres en ce bas monde ? JC n'a-t-il pas montré l'exemple en guérissant des lépreux et en faisant d'autres miracles ? comme il est dit dans les Saintes écritures, selon Saint Luc : « Paix sur la terre aux hommes de bonne volonté » ! 😇 (Amen)

soan
 
Bonjour à tous

J'interviens car cela dérive !
@WarDog , aucun problème pour mettre un lien sur du crossposting, comme l'a dit soan très justement (pour une fois😉), cela permet de vérifier et selon le cas, de prévenir gentiment ou plus sèchement en cas de récidive. Personnellement, je ne vais pas sur d'autres sites et je ne risque pas de m'en apercevoir moi même.
Ensuite, chacun est libre sur XLD pour répondre ou ne pas répondre et il n'y a absolument aucune raison de réagir excessivement. C'est très bien retranscrit dans les articles 1.2 et 3.2 de la charte Xld.
Signalez si vous constatez un problème, intervenez directement si vous le désirez, mais en respectant l'esprit de la charte, sans animosité, avec compréhension et pédagogie.

Bien cordialement, @+
 
Bonsoir Wardog

Pour quelqu'un arrivé sur le site depuis 7 jours et qui n'a que 20 messages à son actif dont plus de la moitié pour des reproches, je pense effectivement que vous êtes excessif. Si la charte Xld ou la façon dont le site est géré ne vous plait pas, vous n'avez aucune obligation d'y venir. Personnellement, je suis plutôt tolérant envers les nouveaux membres mais les agressifs me déplaisent, vous avez d'aileurs été vous même déjà signalé pour cela par plusieurs membres. Je n'avais pas réagi avant pour vous laisser le temps de prendre vos marques mais au vu de votre réponse à mon post de recadrage, je pense que cela ne va pas le faire, adieu.
 
Bonjour YANNISSE, Hasco, soan, le forum

Si seulement la première ligne est remplie mais la deuxième non alors les informations résignaient (ligne 1) seront transférés à la BD

@YANNISE , en limitant le test des champs non remplis déclenchant le message aux deux premières lignes ou une saisie incomplète de la troisième.

Cordialement, @+
VB:
Sub ctrl_1()

      Dim Reponse As Byte
      Dim PL As Range, Cel As Range, Lettre$, Message$
      Dim Mavariable As String
     
      'Mavariable = Feuil1.Range("K9").Value
     
      Set PL = Feuil1.Range("E3,G3,E6,G6,I6,E9,G9,I9")
      For Each Cel In PL
            Select Case Cel.Address(False, False, xlA1)
                  Case "E3": Lettre = "'Commande'"
                  Case "G3": Lettre = "'Date'"
                  Case "E6": Lettre = "'Article'"
                  Case "G6": Lettre = "'Réf.'"
                  Case "I6": Lettre = "'Matricule'"
                  Case "E9": Lettre = "'Article'"
                  Case "G9": Lettre = "'Réf."
                  Case "I9": Lettre = "'Matricule'"

            End Select
            Select Case Cel.Text
                  Case Is = ""
                        Cel.Interior.Color = RGB(255, 46, 46)
                        If Message = "" Then Message = "Champ(s) non renseigné(s) :  " & vbLf & vbLf & Lettre Else Message = Message & ", " & Lettre
                  Case Else: Cel.Interior.ColorIndex = xlColorIndexNone
                  Range("E59,J59").Interior.Color = RGB(221, 235, 247)
            End Select
           
      Next Cel

      If Not Application.CountA(Feuil1.Range("E3,G3,E6,G6,I6")) = 5 Or (Application.CountA(Feuil1.Range("E9,G9,I9")) > 0 And Application.CountA(Feuil1.Range("E9,G9,I9")) < 3) Then
            MsgBox Message & vbLf & vbLf & vbLf & "Veuillez saisir le champ signalé (s) ", vbCritical + vbOKOnly, "Erreur de saisie"
           
      Else
     
            Feuil2.Range("B9999").End(xlUp).Offset(1, 0) = Feuil1.Range("E3")
            Feuil2.Range("C9999").End(xlUp).Offset(1, 0) = Feuil1.Range("G3")
           
            Feuil2.Range("D9999").End(xlUp).Offset(1, 0) = Feuil1.Range("E6")
            Feuil2.Range("E9999").End(xlUp).Offset(1, 0) = Feuil1.Range("G6")
            Feuil2.Range("F9999").End(xlUp).Offset(1, 0) = Feuil1.Range("I6")
           
           
            If Application.CountA(Feuil1.Range("E9,G9,I9")) = 3 Then
                Feuil2.Range("B9999").End(xlUp).Offset(1, 0) = Feuil1.Range("E3")
                Feuil2.Range("C9999").End(xlUp).Offset(1, 0) = Feuil1.Range("G3")
           
                Feuil2.Range("D9999").End(xlUp).Offset(1, 0) = Feuil1.Range("E9")
                Feuil2.Range("E9999").End(xlUp).Offset(1, 0) = Feuil1.Range("G9")
                Feuil2.Range("F9999").End(xlUp).Offset(1, 0) = Feuil1.Range("I9")
            End If

            Reponse = MsgBox(vbCr & "    " & "Les données ont bien été enregistrées" & vbCr & " " & vbCr & " " & "Voulez-vous effacer les champs de saisie ?" _
                        , vbInformation + vbYesNo, "Enregistrement effectué...")

            Dim i As Long, k As Long
                With Feuil2
                    k = 1
                    For i = 2 To .Range("B" & .Rows.Count).End(xlUp).Row
                        If IsNumeric(.Range("A" & i)) And .Range("B" & i) <> "" Then
                        .Range("A" & i) = k
                            k = k + 1
                            Else
                          End If
                        Next i
                    End With
            If Reponse = 6 Then clear_dn_1
   
            End If
           
End Sub
 
Bonjour @Bernard_XLD ;

d'abord je te remercie infiniment de votre intervinssent ainsi que @soan et je m'excuse auprès de vous tous

notamment je te remercie pour le code il est parfait juste il manque un petit truc :

si le premier ligne est renseigné mais le second est entièrement vide alors après l'enregistrement des données du ligne 1 les cellules de 2eme ligne ne devraient pas apparaître en couleur rouge
peut tu STP voir ca



grand merci
 
Bonjour YANNISE, le fil, le forum

Une petite modif rapide !
VB:
Sub ctrl_1()

      Dim Reponse As Byte
      Dim PL As Range, Cel As Range, Lettre$, Message$
      Dim Mavariable As String
    
      'Mavariable = Feuil1.Range("K9").Value
    
      Set PL = Feuil1.Range("E3,G3,E6,G6,I6")
      For Each Cel In PL
            Select Case Cel.Address(False, False, xlA1)
                  Case "E3": Lettre = "'Commande'"
                  Case "G3": Lettre = "'Date'"
                  Case "E6": Lettre = "'Article'"
                  Case "G6": Lettre = "'Réf.'"
                  Case "I6": Lettre = "'Matricule'"

            End Select
            Select Case Cel.Text
                  Case Is = ""
                        Cel.Interior.Color = RGB(255, 46, 46)
                        If Message = "" Then Message = "Champ(s) non renseigné(s) :  " & vbLf & vbLf & Lettre Else Message = Message & ", " & Lettre
                  Case Else: Cel.Interior.ColorIndex = xlColorIndexNone
                  Range("E59,J59").Interior.Color = RGB(221, 235, 247)
            End Select
          
      Next Cel
      If Application.CountA(Feuil1.Range("E9,G9,I9")) > 0 Then
          Set PL = Feuil1.Range("E9,G9,I9")
          For Each Cel In PL
                Select Case Cel.Address(False, False, xlA1)
                      Case "E9": Lettre = "'Article 2'"
                      Case "G9": Lettre = "'Réf. 2'"
                      Case "I9": Lettre = "'Matricule 2'"
    
                End Select
                Select Case Cel.Text
                      Case Is = ""
                            Cel.Interior.Color = RGB(255, 46, 46)
                            If Message = "" Then Message = "Champ(s) non renseigné(s) :  " & vbLf & vbLf & Lettre Else Message = Message & ", " & Lettre
                      Case Else: Cel.Interior.ColorIndex = xlColorIndexNone
                      Range("E59,J59").Interior.Color = RGB(221, 235, 247)
                End Select
              
          Next Cel
      End If

      If Not Application.CountA(Feuil1.Range("E3,G3,E6,G6,I6")) = 5 Or (Application.CountA(Feuil1.Range("E9,G9,I9")) > 0 And Application.CountA(Feuil1.Range("E9,G9,I9")) < 3) Then
            MsgBox Message & vbLf & vbLf & vbLf & "Veuillez saisir le champ signalé (s) ", vbCritical + vbOKOnly, "Erreur de saisie"
          
      Else
    
            Feuil2.Range("B9999").End(xlUp).Offset(1, 0) = Feuil1.Range("E3")
            Feuil2.Range("C9999").End(xlUp).Offset(1, 0) = Feuil1.Range("G3")
          
            Feuil2.Range("D9999").End(xlUp).Offset(1, 0) = Feuil1.Range("E6")
            Feuil2.Range("E9999").End(xlUp).Offset(1, 0) = Feuil1.Range("G6")
            Feuil2.Range("F9999").End(xlUp).Offset(1, 0) = Feuil1.Range("I6")
          
          
            If Application.CountA(Feuil1.Range("E9,G9,I9")) = 3 Then
                Feuil2.Range("B9999").End(xlUp).Offset(1, 0) = Feuil1.Range("E3")
                Feuil2.Range("C9999").End(xlUp).Offset(1, 0) = Feuil1.Range("G3")
          
                Feuil2.Range("D9999").End(xlUp).Offset(1, 0) = Feuil1.Range("E9")
                Feuil2.Range("E9999").End(xlUp).Offset(1, 0) = Feuil1.Range("G9")
                Feuil2.Range("F9999").End(xlUp).Offset(1, 0) = Feuil1.Range("I9")
            End If

            Reponse = MsgBox(vbCr & "    " & "Les données ont bien été enregistrées" & vbCr & " " & vbCr & " " & "Voulez-vous effacer les champs de saisie ?" _
                        , vbInformation + vbYesNo, "Enregistrement effectué...")

            Dim i As Long, k As Long
                With Feuil2
                    k = 1
                    For i = 2 To .Range("B" & .Rows.Count).End(xlUp).Row
                        If IsNumeric(.Range("A" & i)) And .Range("B" & i) <> "" Then
                        .Range("A" & i) = k
                            k = k + 1
                            Else
                          End If
                        Next i
                    End With
            If Reponse = 6 Then clear_dn_1
  
            End If
          
End Sub
 
- 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

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
649
Réponses
3
Affichages
665
Réponses
8
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…