Microsoft 365 rajouter une ligne au tableau en copiant les données ds les cellules désignées

blancolie

XLDnaute Impliqué
Bonjour ou Bonsoir le Forum,

Dans le fichier "Inventaire Matériel" et dans l'onglet "Matériel_Site" et à partir du rectangle système de copie, j'aimerais Copier les éléments qui sont dans les cellules bordures noir dans les colonnes approprié et à des conditions ou pouvoir modifier:

1 - copier les éléments en bas du tableau si le secteur et site n'existe pas en rajoutant une ligne.

2- si on rajoute des éléments à un secteur et site déjà existant dans le tableau, j'aimerais que celle-ci se rajoute à la suite. C'est à dire par exemple j'ai le secteur HDV et le site Boulin à Grin qui existe, je li rajoute une électrovanne (marque, type , quantité), cela crée une ligne en L26.

3 - je souhaite pouvoir modifié certains éléments en L26 (Secteur:HDV;Site:Céphé); comme la marque et la quantité sans crée de nouvelle ligne.

4 - avoir une boite de dialogue qui apparait pour me dire que la ligne a été rajouter en ajoutant le Numéro de ligne . Je ne sais pas si cela est possible.

pour une discussion ancienne, on m'avait crée ce code qui ressemble beaucoup a ce que je demande au dessus mais elle n'inclut pas le point N°3. Si cela peut vous apporter de l'aide.

VB:
Option Explicit

Sub LignePlante()
  If ActiveSheet.Name <> "BDD_FLEURS" Then Exit Sub
  Dim cel As Range, plante$, lig&, b As Byte, i As Byte
  plante = [P9]: If plante = "" Then Exit Sub
  Application.ScreenUpdating = 0
  Set cel = Columns(6).Find(plante, , -4163, 1, 1)
  If Not cel Is Nothing Then
    lig = cel.Row: b = 1 'plante trouvée ; b = 1
  Else 'plante non trouvée ; b reste à 0
    lig = ActiveSheet.ListObjects("T_Datas").ListRows.Count + 27
  End If
  With Cells(lig, 6)
    If [P7] <> "" Then .Offset(, 1) = [P7]       'Fournisseur
    If [P11] <> "" Then .Offset(, 7) = [P11]     'Catégorie
    If [P13] <> "" Then .Offset(, 12) = [P13]    'Couleur Fleurs
    If [P15] <> "" Then .Offset(, 11) = [P15]    'Couleurs Feuilles
    If [P17] <> "" Then .Offset(, 14) = [P17]    'Hauteur
    If [P19] <> "" Then .Offset(, 15) = [P19]    'Largeur
    If [P21] <> "" Then .Offset(, 29) = [P21]    'Densité
    If [P23] <> "" Then .Offset(, 16) = [P23]    'Port
    If [W7] <> "" Then .Offset(, 10) = [W7]      'Mellifère
    If [W9] <> "" Then .Offset(, 13) = [W9]      'Inflorescence
    If [W11] <> "" Then .Offset(, 9) = [W11]     'Attrait de la plante
    If [W13] <> "" Then .Offset(, 8) = [W13]     'Contenant
    If [W18] <> "" Then .Offset(, 2) = [W18]     'Marché
    For i = 0 To 11                              'Mois J à D
      If [W16].Offset(, i) <> "" Then .Offset(, 17 + i) = [W16].Offset(, i)
    Next i
    Application.Goto .Offset(, -1), True: Application.ScreenUpdating = -1
    If b = 0 Then
      .Value = plante                            'Plante
      MsgBox "Nouvelle plante, ajoutée en fin de liste.", 64
    Else
      MsgBox "Plante modifiée en ligne " & lig & ".", 48
    End If
  End With
End Sub


En vous remerciant d'avance.
 

Pièces jointes

  • Inventaire Arrosage.xlsm
    45.4 KB · Affichages: 22
Dernière édition:

Rouge

XLDnaute Impliqué
Bonjour,

Si j'ai bien compris
VB:
Sub Copier()
    Dim x As Range
    Dim Sect As String, Site As String, Cat As String, Marq As String, Typ As String
    Dim Qte As Long, l As Long
    Application.ScreenUpdating = False
    Sect = Range("E13").Value
    Site = Range("H13").Value
    Cat = Range("E15").Value
    Marq = Range("H15").Value
    Typ = Range("E17").Value
    Qte = Range("H17").Value
    
    Range("BDD_matériel[[#Headers],[Site]]").Select
    Set x = Cells.Find(Site, LookAt:=xlWhole, After:=ActiveCell, SearchOrder:=xlByRows, SearchDirection:=xlNext)
    l = x.Row
    Do While Cells(l, "E") = Site
        l = l + 1
    Loop
    Rows(l).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range(Cells(l, "D"), Cells(l, "I")).Value = Array(Sect, Site, Cat, Marq, Typ, Qte)
    Set x = Nothing
End Sub

Cdlt
 

blancolie

XLDnaute Impliqué
bonjour Rouge,

Merci pour ton travail,

cela copie bien les infos la ou cela doit y être mais si après je souhaite modifier par exemple une quantité, cela me rajoute une ligne. Il faut pas. il me faut que cela me modifie la ligne.

Cest à dire :secteur:HDV; Site:Courd'honneur(Mairie);Catégorie:programmateur:ESP_LME;marque:rain-bird; quantité:50.

si un jour j'effectue un changement sur ce site, il faut juste modifier cette ligne existante.

mais cool sinon cest très bien.

merci encore
 

fanfan38

XLDnaute Barbatruc
Bonjour

Un début de solution
double clic pour voir le formulaire
Si pas de fiche pour se site dans BDD_site création d'une nouvelle ligne
Si nouveau site l'ajouter dans parametre (a voir ultérieurement)
Reste à faire idem pour le matériel si tu es d'accord
A+ François
 

Pièces jointes

  • Inventaire Arrosage.xlsm
    58.7 KB · Affichages: 7

blancolie

XLDnaute Impliqué
Bonsoir fanfan,

il n'y a rien de nouveau ds ce fichier post11. a part la liste déroulante de site qui affiche les sites, le reste, il n'y a rien du tout. Pour l'onglet matériel_site, je pense que cela n a pas été activé.

Merci quand même pour ton travail
 

fanfan38

XLDnaute Barbatruc
Tu as demander l'agrandissement des caractères (post#10)
c'est ce que tu as post#11
Non l'onglet matériel n'a pas été traité car je ne savais pas si les listes déroulantes et l'userform marchaient... (mac)
Post#12 rien compris
post#13 il n'y a que le combobox site qui marche?
A+ François
 

blancolie

XLDnaute Impliqué
Bonsoir,
ah effectivement il y a soucis de com lol.
l'userform apparait bien sur l'onglet site quand on clique sur une ligne en bas du tableau ou ds le tableau
Rien ne s'affiche ds les listes déroulantes a par celle qui gère les sites.
Vu que rien n'apparait ds les listes, je ne peux pas tester. Par contre quand je clique sur une ligne qui existe déja, tout apparait bien ds les cases.

Quand je vais sur l'onglet matériel_site, la je double click et rien n'apparait
je veux bien si tu le veux bien bien sur faire la même chose pour l'onglet matériel.

Merci
 

Discussions similaires

Statistiques des forums

Discussions
313 296
Messages
2 096 912
Membres
106 786
dernier inscrit
Mgordat