Remplacer InputBox par Userform et ComboBox
G
Bonjour à tous,
J'ai besoin de votre aide ! Je cherche à remplacer mon InputBox par une ComboBox car je dois avoir une liste déroulante (impossible dans une InputBox).
Le but étant de remplir les lignes vides présentes entre d'autres lignes (non vides), pour une base de données.
Seulement mes capacités VBA sont encore bien faibles, même si je m'améliore un peu
Voilà mon code avec InputBox :
Sub Bouton258_Cliquer()
If MsgBox("Voulez-vous ajouter un projet?" & vbCrLf & "Cette opération peut prendre quelques secondes", vbYesNo, "Ajout Projet") = vbYes Then
Application.ScreenUpdating = False
With Sheets("BDD")
'Insertion d'une ligne dès que deux cellule consécutives ne sont pas égales (nouvel item)
Dim L As Integer, Ligne As Integer
L = 3
Do While Cells(L, "A") <> ""
If Cells(L, "A").Value <> Cells(L + 1, "A").Value Then
Ligne = Cells(L + 1, "A").Row
Rows(Ligne).Insert
L = L + 1
End If
L = L + 1
Loop
Dim plage As Range, cell As Range
'Plage pour la recherche : colonne A, à partir de A3 jusqu'à la dernière ligne utilisée de la colonne A'
Set plage = .Range("A3:A" & .Range("A" & Rows.Count).End(xlUp).Row)
For Each cell In plage
'Si cellule vide alors je lui donne la valeur de la cellule au dessus
If cell.Value = "" Then cell.Value = cell.Offset(-1, 0).Value
Next cell
End With
'Affectation des formules de calcul de prix aux nouvelles lignes vierges
'1
Range("H3:H1048576").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Application.CutCopyMode = False
Selection.FormulaR1C1 = "=RC[-2]*RC[8]"
'2
Range("I3:I1048576").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=RC[-3]*(1+0.018)^(YEAR(TODAY())-YEAR(RC[3]))"
'3
Range("K3:K1048576").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=RC[-3]*(1+0.018)^(YEAR(TODAY())-YEAR(RC[1]))"
'Masquer les lignes déja complétées pour simplifier l'enregistrement d'un nouveau projet
Columns(3).SpecialCells(xlCellTypeConstants).EntireRow.Hidden = True
Range("A1:A2").EntireRow.Hidden = False
Set objRange = Union(Range("G3:G1048576"), Range("J3:J1048576"))
objRange.SpecialCells(xlCellTypeBlanks).Select
Devuse = "Devise"
Devise = InputBox("Entrez la devise de votre projet (€, $, £ ou XOF)", "Devise", Devuse)
Selection.FormulaR1C1 = Devise
'4
Range("P3:P1048576").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = _
"=IF(RC[-9]=""$"",""0,89"",IF(RC[-9]=""€"",""1"",IF(RC[-9]=""FCFA"",""655,957"",IF(RC[-9]=""XOF"",""655,957"",IF(RC[-9]=""£"",""1.13"")))))"
'Type de projet
Range("D3:D1048576").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Projet = "Type de projet"
TypeProj = InputBox("Entrez le type de votre projet (Métro, Tramway, BHNS, ...)", "Type de projet", Projet)
Selection.FormulaR1C1 = TypeProj
'Pays
Range("N3:N1048576").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Pays = "Pays"
Pays = InputBox("Entrez le pays de votre projet", "Pays", Pays)
Selection.FormulaR1C1 = Pays
'Ville
Range("M3:M1048576").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Ville = "Ville"
Ville = InputBox("Entrez la ville de votre projet", "Ville", Ville)
Selection.FormulaR1C1 = Ville
'Nom
Range("O3:O1048576").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
PNom = "P.Nom"
Nom = InputBox("Entrez le nom du référent de votre projet", "Nom", PNom)
Selection.FormulaR1C1 = Nom
'Date
Range("L3:L1048576").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Dim LaDate As String, MaDate As Date
LaDate = "jj/mm/aaa"
MaDate = InputBox("Entrez la date de votre projet", "Date", LaDate)
Selection.FormulaR1C1 = MaDate
'Référence
Range("Q3:Q1048576").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
TypeProj = InputBox("Entrez la référence de votre projet" & vbCrLf & "Si inconnue, tapez x", "Type de projet")
Selection.FormulaR1C1 = TypeProj
End If
End SubUn héros pour m'aider à avancer ?
Merci beaucoup.
Bonjour,
un fichier test est bien mieux qu'une page de codes.
On ne sait même pas la fonction de ton Bouton258 ? C'est un bouton de validation ?
il est ou ? sur une feuille dans userform ? pourquoi la selection n'est-elle pas prévue avant ?