Problème formulaire avec différentes feuilles Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
f
fouine26
Jeune membre
Jeune membre
Messages : 20
Inscrit le : 11 mai 2015
Version d'Excel : 2007

Message par fouine26 » 20 mai 2015, 15:20

Bonjour à tous,

Voici mon petit problème :

J'ai créé un formulaire pour pouvoir ajouter une personne dans une base de données.
Quand j'ouvre mon formulaire par la page d'accueil (à l'aide d'un bouton affecté à une macro) et que je crée la personne, rien ne s'ajoute dans mon tableau.
Si je reste toujours sur ma page d'accueil, que je passe par le VBA et que j'appuie sur F5, ça ne marche toujours pas.
Par contre, si je me place sur ma feuille (renommée TABLEAUINFO) où sont présentes mes données et que je passe par le VBA et F5, là tout fonctionne !!!

D'où peut venir mon problème ?
Comment faire lorsque mon nouveau licencié est crée, il soit directement trié dans l'ordre alphabétique dans mon tableau?

Voici mon code VBA pour mon bouton Nouveau Licencié :

'Pour le bouton Nouveau licencié
Private Sub CommandButton1_Click()
Dim X As Integer
If MsgBox("Confirmez-vous l’insertion de ce nouveau licencié ?", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then
X = Sheets("TABLEAUINFO").Range("a65536").End(xlUp).Row + 1
Range("A" & X).Value = ComboBox1
Range("B" & X).Value = TextBox1
Range("C" & X).Value = TextBox2
Range("D" & X).Value = TextBox3
Range("E" & X).Value = TextBox4
Range("F" & X).Value = TextBox5
Range("G" & X).Value = TextBox6
Range("H" & X).Value = TextBox7
Range("I" & X).Value = TextBox8
Range("J" & X).Value = TextBox9
Range("K" & X).Value = TextBox10
Range("L" & X).Value = TextBox11
Range("M" & X).Value = TextBox12
Range("N" & X).Value = TextBox13
Range("O" & X).Value = TextBox14
Range("P" & X).Value = TextBox15
Range("Q" & X).Value = TextBox16
Range("R" & X).Value = TextBox17
Range("S" & X).Value = TextBox18
Range("T" & X).Value = TextBox19
Range("U" & X).Value = TextBox20
Range("V" & X).Value = TextBox21
Range("W" & X).Value = TextBox22
End If
End Sub


Merci pour votre aide :wink:
Avatar du membre
Force rouge
Membre impliqué
Membre impliqué
Messages : 1'004
Inscrit le : 17 mai 2015
Version d'Excel : 2007FR

Message par Force rouge » 20 mai 2015, 16:28

Bonjour, essayez avec se code là qui ne doit pas être loin du resultat attendu. Le filtre se fait sur la colonne A
Private Sub CommandButton1_Click()
    Dim X&, i As Byte
    X = Sheets("TABLEAUINFO").Range("a65536").End(xlUp).Row + 1
    If MsgBox("Confirmez-vous l’insertion de ce nouveau licencié ?", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then
        With Sheets("TABLEAUINFO")
            For i = 2 To 23
                .Range("A" & X).Value = ComboBox1
                .Cells(X, i).Value = Controls("TextBox" & i - 1)
            Next
            .Range("A1").CurrentRegion.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes
        End With
    End If
    Unload Me
End Sub
Selon ce que tu cherches, tu trouveras soit une excuse soit une solution.
f
fouine26
Jeune membre
Jeune membre
Messages : 20
Inscrit le : 11 mai 2015
Version d'Excel : 2007

Message par fouine26 » 20 mai 2015, 16:49

On avance, on avance ...

Quand je passe par le VBA (pour le formulaire) en étant sur ma page de données, pas de soucis tout marche (l'enregistrement et le tri).

Par contre, si je me mets sur une autre feuille et que je fais la même chose, le message d'erreur suivant s'affiche :
" Erreur d'exécution' 1004' :
Référence de tri non valide. Vérifiez qu'elle se trouve bien parmi les données à trier et que la zone Trier par n'est pas identique ou vide"

Du coup il me propose un Débogage et quand je le fais, la ligne suivante est en surbrillance jaune : .Range("A1").CurrentRegion.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes


En tout cas merci Force rouge pour le temps que tu me consacres :D
Avatar du membre
Force rouge
Membre impliqué
Membre impliqué
Messages : 1'004
Inscrit le : 17 mai 2015
Version d'Excel : 2007FR

Message par Force rouge » 20 mai 2015, 17:21

ca vient peut-être (je dis peut-être because j'suis pas expert) du fait que la feuille n'est pas active (avec vba faut s'attendre à tout) essayez celui-ci
Private Sub CommandButton1_Click()
    Dim X&, i As Byte
    X = Sheets("TABLEAUINFO").Range("a65536").End(xlUp).Row + 1
    If MsgBox("Confirmez-vous l’insertion de ce nouveau licencié ?", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then
        Sheets("TABLEAUINFO").Activate
        With Sheets("TABLEAUINFO")
            For i = 2 To 23
                .Range("A" & X).Value = ComboBox1
                .Cells(X, i).Value = Controls("TextBox" & i - 1)
            Next
            .Range("A1").CurrentRegion.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes
        End With
    End If
    Unload Me
End Sub
Selon ce que tu cherches, tu trouveras soit une excuse soit une solution.
f
fouine26
Jeune membre
Jeune membre
Messages : 20
Inscrit le : 11 mai 2015
Version d'Excel : 2007

Message par fouine26 » 21 mai 2015, 10:04

Tout fonctionne !!!! :D :D :D

Mille merci
Avatar du membre
Force rouge
Membre impliqué
Membre impliqué
Messages : 1'004
Inscrit le : 17 mai 2015
Version d'Excel : 2007FR

Message par Force rouge » 21 mai 2015, 10:08

De rien :) merci à toi également :)
Selon ce que tu cherches, tu trouveras soit une excuse soit une solution.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message