XL 2013 Ajout nouvelle ligne si valeur nulle

DUCH

XLDnaute Nouveau
Bonjour à tous,

J'ai un peu de mal à programmer en VBA...

Je travaille sur un fichier dans lequel l'utilisateur entre un nombre via une Textbox. Si ce nombre est déjà présent dans ma base de données (jobnumber et number identique), il ajoute 1 à une cellule associée (la colonne D, ligne correspondant au jobnumber et number).

Ma condition "and" entre jobnumber et number ne fonctionne pas.

Je me retrouve bloqué dans l'écriture de mon programme car j'aimerai que ce programme me crée automatiquement une nouvelle ligne si les données "drawing" and "jobnumber" n'existent pas et me les ajouter en fin de tableau.
De plus, me proposer d'indiquer un commentaire dans la colonne "description" seulement lorsque la nouvelle ligne est créée.


Voici le lien : tesssst1.xlsm



Merci d'avance.
 

thebenoit59

XLDnaute Accro
Re : Ajout nouvelle ligne si valeur nulle

Bonjour Duch et bienvenu sur le forum.

Je te propose le code suivant :

Code:
Option Explicit
Sub Add_piece()
Dim i As Long, l As Long
Dim jn As String, n As String, des As String
Dim d As Object

Set d = CreateObject("scripting.dictionary")

With Feuil1
'Définition de la dernière ligne remplie en colonne A
l = .[a65000].End(xlUp).Row
'On boucle les lignes pour remplir le dictionnaire, afin de vérifier s'il existe déjà un couple Job Number / Number
For i = 2 To l: d(.Cells(i, 1).Value & ":" & .Cells(i, 2).Value) = i: Next i
'On entre les valeurs par Inputbox
jn = InputBox("Write the Job n :", "Job number"): n = InputBox("Write the Drawing n :", "Drawing number")
'On vérifie si le couple existe déjà
If d.exists(jn & ":" & n) Then
'Si oui, on incrémente de 1 la colonne D
.Cells(d(jn & ":" & n), 4).Value = .Cells(d(jn & ":" & n), 4).Value + 1
Else:
'Si non, un inputbox demande la désignation
des = InputBox("Write the new Description :", "Description")
'On entre les valeurs dans les différentes colonnes
.Cells(l + 1, 1).Value = jn
.Cells(l + 1, 2).Value = n
.Cells(l + 1, 3).Value = des
.Cells(l + 1, 4).Value = 0
End If
End With
End Sub

A toi de tester et de voir si ça correspond à tes attentes.
 

Discussions similaires

Réponses
10
Affichages
462

Statistiques des forums

Discussions
312 492
Messages
2 088 926
Membres
103 984
dernier inscrit
maliko67