Problème lancement macro

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

P

pipo159

Guest
Bonjour,
Je suis novice en la matière et je souhaiterai faire un petit programme me permettant de faire mes comptes sous excel.
Je souhaite rentrer mes données à travers un userform1.
Les données s'inséreraient dans la Feuil2 dans la 1ere ligne du tableau.
Ma dernière donnée se situerait donc en haut du tableau.
J'ai commencé à faire ce programme mais il y a un problème pour lancer la macro.
Quelqu'un pourrait il m'aider à résoudre mon problème svp?
Je joint un exemple de mon fichier pour une meilleure compréhension.

Cordialement,

Pipo
 

Pièces jointes

Re : Problème lancement macro

Salut Pipo159,

Tu n'est pas obligé d'activer une feuille ou une cellule pour avoir la valeur

Dans ton USF1
Code:
Private Sub UserForm_Initialize()
    Dim Plage As Range
    ' Colonne B
    With Sheets("Feuil1")
      Set Plage = .Range("B3:B" & .Range("B" & Cells.Rows.Count).End(xlUp).Row)
      CB1.List = Plage.Value
    End With
End Sub

Pour ajouter les données, toujours sur la 3 ème ligne
Code:
Private Sub CommandButton3_Click()
  With Sheets("Feuil2")
    ' Insérer une ligne avant les données
    Rows("3:3").Insert Shift:=xlDown
    ' inscrire les données
    .Cells(3, 4) = Me.TB1.Value
    .Cells(3, 5) = Me.TB2.Value
    .Cells(3, 6) = Me.TB3.Value
    .Cells(3, 3) = Me.CB1.Value
    .Cells(3, 2) = DTPicker1.Value
    .Cells(3, 2).NumberFormat = "dd/mm/yyyy"
  End With
  Me.TB1.Value = ""
  Me.TB2.Value = ""
  Me.TB3.Value = ""
  Me.CB1.Value = ""
  DTPicker1.Value = ""
  End
End Sub

Voilà, bon courage pour la suite 😉
 
Re : Problème lancement macro

Bonsoir,
Il y a une erreur de nom de la Combo et la définition de la plage à l'initialisation du USF
Code:
Private Sub UserForm_Initialize()
    Dim Plage As Range
    'Colonne B
    With Sheets("Feuil1")
    Set Plage = .Range("B2:B" & .Range("B65000").End(xlUp).Row)
    End With
    CB1.List = Plage.Value
    
End Sub
A+
kjin
 
Re : Problème lancement macro

Bonsoir,

Merci beaucoup de votre aide et vos réponses si rapide.
ça fonctionne correctement maintenant, merci bien.
Je vais tenter de continuer mon petit projet^^

Cordialement,

Pipo
 
Re : Problème lancement macro

Re-bonsoir,
J'ai un autre petit problème,
En fait je souhaiterai que dans mon tableau les données, qui sont rentrées dans l'userform, soit écrite en fin de tableau.
C'est à dire que lorsque une ligne est ajoutée, les données suivantes s'inscriront sur la ligne suivante.

Quelqu'un pourrait il m'aider à solutionner mon problème svp?

Cordialement,

Pipo
 

Pièces jointes

Re : Problème lancement macro

Re,
Modifie ton code comme ceci
Code:
Private Sub CommandButton1_Click()
    Dim i%
    With Sheets("Feuil1")
    i = .Range("B65000").End(xlUp).Row + 1
    .Cells(i, 4) = TB1.Value
    .Cells(i, 5) = TB2.Value
    .Cells(i, 6) = TB3.Value
    .Cells(i, 3) = CB1.Value
    .Cells(i, 2) = DTPicker1.Value
    .Cells(i, 2).NumberFormat = "dd/mm/yyyy"
    End With
    Me.TB1.Value = ""
    Me.TB2.Value = ""
    Me.TB3.Value = ""
    Me.CB1.Value = ""
End Sub
A+
kjin
 
Re : Problème lancement macro

Re bonsoir,

Bon je sais je commence à être chiant^^
Mais bon étant novice, j'ai encore du mal.
Je souhaiterai dans mon tableau que si le case crédit est remplie alors les 5 cases de la ligne du tableau sont coloriées en vert par exemple.
Et si c'est un débit, alors coloriée en rouge ou quelque chose du genre.
Le problème est que je n'y arrive pas, j'ai un problème dans mes sélections de ligne.

Je souhaiterai à nouveau un petit peu d'aide svp

Merci à vous

Cordialement,

Pipo
 

Pièces jointes

Re : Problème lancement macro

Re,
Il serait bien que tu nettoies ton codes des lignes "parasites" !
Code:
Private Sub CommandButton1_Click()
    Dim i%
    With Sheets("Feuil1")
    i = .Range("B65000").End(xlUp).Row + 1
    .Cells(i, 2) = DTPicker1.Value
    .Cells(i, 2).NumberFormat = "dd/mm/yyyy"
    .Cells(i, 3) = Me.CB1.Value
    .Cells(i, 4) = Me.TB1.Value
        If TB2 <> "" Then
            .Cells(i, 5) = Me.TB2.Value
            .Range("B" & i & ":F" & i).Interior.ColorIndex = 40
        End If
        If TB3 <> "" Then
            .Cells(i, 6) = Me.TB3.Value
            .Range("B" & i & ":F" & i).Interior.ColorIndex = 35
        End If
    End With
    Me.TB1.Value = ""
    Me.TB2.Value = ""
    Me.TB3.Value = ""
    Me.CB1.Value = ""
End Sub
A+
kjin
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
589
D
  • Question Question
2
Réponses
28
Affichages
2 K
Deleted member 441486
D
Réponses
14
Affichages
745
Retour