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

Microsoft 365 code pour ajout

Marvin57

XLDnaute Occasionnel
Bonjour tout le monde,

dans le fichier ci-joint, j'aurai besoin de votre aide s'il vous plaît.

Explications :

Il y a un onglet nommé RESERVE et un onglet nommé AJOUT.

Mon souhait serait de pouvoir ajouter via l'onglet AJOUT des données non existantes en RESERVE. C'est à dire le créer lors d'un ajout parmi les autres en créant un nouvel ID comme vous le voyez dans le tableau de l'onglet ajout sur les deux dernières lignes.

Donc en gros, mettre à jour les données RESERVE et si besoin comme les deux dernières lignes du tableau de l'onglet AJOUT n'existent pas dans la RESERVE, alors il faudrait créer les ID non existant et mettre à jour la RESERVE.

J'espère avoir bien expliqué mon souhait.

Merci d'avance à vous.

Marvin57
 

Pièces jointes

  • Marvin57 ajouter.xlsx
    13.8 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Marvin,
Un essai en PJ :
VB:
Sub UpdateReserve()
Dim Ajout, Reserve, Najout%, i%, j%, C%, Present
Ajout = [Tableau2]              ' Transfert tableau Ajout dans array
Reserve = [Tableau5]            ' Transfert tableau Reserve dans array
Najout = 0                      ' Pour compter le nombre de lignes ajoutées pour message de sortie
For i = 1 To UBound(Ajout)      ' pour toutes les lignes
    ID = Ajout(i, 10)           ' On récupère l'ID
    Present = 0                 ' Présent=0 alors ID absent, =1 ID déjà present
    For j = 1 To UBound(Reserve) ' Pour chaque ligne de Reserve
        If Reserve(j, 1) = Ajout(i, 10) Then    ' On vérifie les ID
            Present = 1: Exit For               ' Si ID présent, on sort
        End If
    Next j
    If Present = 0 Then         ' Donc ID absent
        [Tableau5].ListObject.ListRows.Add              ' Alors on crée une nouvelle ligne
        Ligne = [Tableau5].ListObject.ListRows.Count
        For C = 1 To 9          ' On recopie les 9 champ décalés de 1 en colonne
            [Tableau5].Item(Ligne, C + 1) = [Tableau2].Item(i, C)
        Next C
        [Tableau5].Item(Ligne, 1) = [Tableau2].Item(i, 10)  ' On recopie l'ID du champ 10 dans le champ 1
        Najout = Najout + 1     ' On incrément le nbre de lignes ajoutées
    End If
Next i
If Najout = 0 Then MsgBox "Aucune ligne ajoutée." Else MsgBox Najout & " ligne(s) ajoutée(s)." ' Bilan en sortie
End Sub
 

Pièces jointes

  • Marvin57 ajouter.xlsm
    21 KB · Affichages: 1

Marvin57

XLDnaute Occasionnel
Bonjour sylvanu,

Merci pour cette première proposition.
Alors le rajout des ID non existants fonctionne comme voulu. Mais il fallait également mettre à jour la RESERVE avec les autres ID.

Est-ce possible ?

Merci d'avance
Marvin57
 

Marvin57

XLDnaute Occasionnel
Re sylvanu,

écoutez, je suis vraiment désolé mais je me suis trompé ce matin en vous transmettant le fichier !!

Dans le fichier corrigé ci présent vous verrez que dans l'onglet AJOUT la colonne NOM se trouve à l'extrémité droite et non à gauche comme au départ. Je ne sais pas ou j'avais la tête, désolé.

Donc pour revenir au souhait :

Si l'ID est inexistant il doit le créer, cela avait bien fonctionné. Sauf que en même temps il doit placé la nouvelle ligne avec le NOM, sinon il ne la place pas au bon endroit.
Comme vous le verrez j'ai cliquez pour transférer et voyez le désordre qu'il fait.
J'espère que vous me pardonnez .

A+
Marvin57
 

Pièces jointes

  • Marvin57 ajouter.xlsx
    13.8 KB · Affichages: 1

Marvin57

XLDnaute Occasionnel
Désolé sylvanu,

ouvrez le fichier et cliquez sur le bouton pour transférer et vous verrez déja qu'il ne place pas dans l'ordre et qu'il place les ID en première colonne ainsi qu'en dernière colonne.
Mon erreur ce matin était la colonne NOM dans l'onglet AJOUT, car en réalité elle se situe comme dans ce fichier à la dernière colonne. Donc lors d'une nouvelle création d'un ID il devra placé la nouvelle ligne non à la fin du tableau de l'onglet RESERVE mais dans l'ordre des NOMS en colonne NOM.

J'espère que j'ai bien expliqué cette fois ci.
 

Pièces jointes

  • Marvin57 ajouter.xlsm
    26.4 KB · Affichages: 1

Discussions similaires

Réponses
9
Affichages
357
Réponses
11
Affichages
366
Réponses
2
Affichages
363
Réponses
26
Affichages
1 K
Réponses
6
Affichages
625
Réponses
11
Affichages
469
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…