XL 2013 Ajout nouvelle ligne si valeur nulle

  • Initiateur de la discussion Initiateur de la discussion DUCH
  • 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 !

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.
 
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.
 
- 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

Retour