Je cherche a faire un classeur excel comme VBA
Huguo90
-
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis entraide ce construire 1 fichier excel avec 5 feuilles different et 5 formulaires différents. Mon objectif c'est de faire sort que chaque de feuilles correspond a un formulaire comment dans Access. Je veux faire sur une feuille d'accueil 5 boutons qui permettent d'ouvrir chacune un formulaire après l'autre, comme dans Access. Le problème Comment m'y prendre sachant que le plus important pour moi c'est Le code Userform_initialize dans chacune des formulaire et sur un bouton valider qui permet d'enregistrer à partir du formulaire l'information correspond dans sa feuille. Mais ça ne marche pas. ça me donne toujours "erreur d'exécution 9" Voici les codes Juste pour un formulaire.
Private Sub UserForm_Initialize()
Dim Nosiren As String
'Affectation du numéro de matricule du salarié dans la variable
Nosiren = InputBox("Veuillez saisir le numéro de SIREN", "MODIFIER LA TARIFICATION DE LA CONCURRENCE")
Me.Txtnosiren = Nosiren
Dim MaLigne As Integer
For MaLigne = 2 To 80
If Cells(MaLigne, 1) = Nosiren Then
Me.txtnomclient = Cells(MaLigne, 2)
Me.cmbportefeuille = Cells(MaLigne, 3)
Me.txtprixst1 = Cells(MaLigne, 4)
Me.txtprixdero1 = Cells(MaLigne, 5)
Me.txtvolume1 = Cells(MaLigne, 6)
Me.txtprixst2 = Cells(MaLigne, 7)
Me.txtprixdero2 = Cells(MaLigne, 8)
Me.txtvolume2 = Cells(MaLigne, 9)
Me.txtprixst3 = Cells(MaLigne, 10)
Me.txtprixdero3 = Cells(MaLigne, 11)
Me.txtvolume3 = Cells(MaLigne, 12)
Me.txtprixst4 = Cells(MaLigne, 13)
Me.txtprixdero4 = Cells(MaLigne, 14)
Me.txtvolume4 = Cells(MaLigne, 15)
Me.txtprixst5 = Cells(MaLigne, 16)
Me.txtprixdero5 = Cells(MaLigne, 17)
Me.txtvolume5 = Cells(MaLigne, 18)
Me.txtprixst6 = Cells(MaLigne, 19)
Me.txtprixdero6 = Cells(MaLigne, 20)
Me.txtvolume6 = Cells(MaLigne, 21)
Me.txtprixst7 = Cells(MaLigne, 22)
Me.txtprixdero7 = Cells(MaLigne, 23)
Me.txtvolume7 = Cells(MaLigne, 24)
Me.txtprixst8 = Cells(MaLigne, 25)
Me.txtprixdero8 = Cells(MaLigne, 26)
Me.txtvolume8 = Cells(MaLigne, 27)
End If
Next MaLigne
End Sub
Private Sub btnvalider_Click()
Dim i As Integer
Dim valider As String
valider = Txtnosiren.Value
With ThisWorkbook.Sheets("cheque et monetique")
For i = Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
If Range("A" & i).Value = valider Then
Range("A" & i).Value = Txtnosiren.Value
Range("B" & i).Value = txtnomclient.Value
Range("C" & i).Value = cmbportefeuille.Value
Range("D" & i).Value = txtprixst1.Value
Range("E" & i).Value = txtprixdero1.Value
Range("F" & i).Value = txtvolume1.Value
Range("G" & i).Value = txtprixst2.Value
Range("H" & i).Value = txtprixdero2.Value
Range("I" & i).Value = txtvolume2.Value
Range("J" & i).Value = txtprixst3.Value
Range("K" & i).Value = txtprixdero3.Value
Range("L" & i).Value = txtvolume3.Value
Range("M" & i).Value = txtprixst4.Value
Range("N" & i).Value = txtprixdero4.Value
Range("O" & i).Value = txtvolume4.Value
Range("P" & i).Value = txtprixst5.Value
Range("Q" & i).Value = txtprixdero5.Value
Range("R" & i).Value = txtvolume5.Value
Range("S" & i).Value = txtprixst6.Value
Range("T" & i).Value = txtprixdero6.Value
Range("U" & i).Value = txtvolume6.Value
Range("V" & i).Value = txtprixst7.Value
Range("W" & i).Value = txtprixdero7.Value
Range("X" & i).Value = txtvolume7.Value
Range("Y" & i).Value = txtprixst8.Value
Range("Z" & i).Value = txtprixdero8.Value
Range("AA" & i).Value = txtvolume8.Value
Unload monetique_cheque
End If
Next i
End With
End Sub
Je suis entraide ce construire 1 fichier excel avec 5 feuilles different et 5 formulaires différents. Mon objectif c'est de faire sort que chaque de feuilles correspond a un formulaire comment dans Access. Je veux faire sur une feuille d'accueil 5 boutons qui permettent d'ouvrir chacune un formulaire après l'autre, comme dans Access. Le problème Comment m'y prendre sachant que le plus important pour moi c'est Le code Userform_initialize dans chacune des formulaire et sur un bouton valider qui permet d'enregistrer à partir du formulaire l'information correspond dans sa feuille. Mais ça ne marche pas. ça me donne toujours "erreur d'exécution 9" Voici les codes Juste pour un formulaire.
Private Sub UserForm_Initialize()
Dim Nosiren As String
'Affectation du numéro de matricule du salarié dans la variable
Nosiren = InputBox("Veuillez saisir le numéro de SIREN", "MODIFIER LA TARIFICATION DE LA CONCURRENCE")
Me.Txtnosiren = Nosiren
Dim MaLigne As Integer
For MaLigne = 2 To 80
If Cells(MaLigne, 1) = Nosiren Then
Me.txtnomclient = Cells(MaLigne, 2)
Me.cmbportefeuille = Cells(MaLigne, 3)
Me.txtprixst1 = Cells(MaLigne, 4)
Me.txtprixdero1 = Cells(MaLigne, 5)
Me.txtvolume1 = Cells(MaLigne, 6)
Me.txtprixst2 = Cells(MaLigne, 7)
Me.txtprixdero2 = Cells(MaLigne, 8)
Me.txtvolume2 = Cells(MaLigne, 9)
Me.txtprixst3 = Cells(MaLigne, 10)
Me.txtprixdero3 = Cells(MaLigne, 11)
Me.txtvolume3 = Cells(MaLigne, 12)
Me.txtprixst4 = Cells(MaLigne, 13)
Me.txtprixdero4 = Cells(MaLigne, 14)
Me.txtvolume4 = Cells(MaLigne, 15)
Me.txtprixst5 = Cells(MaLigne, 16)
Me.txtprixdero5 = Cells(MaLigne, 17)
Me.txtvolume5 = Cells(MaLigne, 18)
Me.txtprixst6 = Cells(MaLigne, 19)
Me.txtprixdero6 = Cells(MaLigne, 20)
Me.txtvolume6 = Cells(MaLigne, 21)
Me.txtprixst7 = Cells(MaLigne, 22)
Me.txtprixdero7 = Cells(MaLigne, 23)
Me.txtvolume7 = Cells(MaLigne, 24)
Me.txtprixst8 = Cells(MaLigne, 25)
Me.txtprixdero8 = Cells(MaLigne, 26)
Me.txtvolume8 = Cells(MaLigne, 27)
End If
Next MaLigne
End Sub
Private Sub btnvalider_Click()
Dim i As Integer
Dim valider As String
valider = Txtnosiren.Value
With ThisWorkbook.Sheets("cheque et monetique")
For i = Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
If Range("A" & i).Value = valider Then
Range("A" & i).Value = Txtnosiren.Value
Range("B" & i).Value = txtnomclient.Value
Range("C" & i).Value = cmbportefeuille.Value
Range("D" & i).Value = txtprixst1.Value
Range("E" & i).Value = txtprixdero1.Value
Range("F" & i).Value = txtvolume1.Value
Range("G" & i).Value = txtprixst2.Value
Range("H" & i).Value = txtprixdero2.Value
Range("I" & i).Value = txtvolume2.Value
Range("J" & i).Value = txtprixst3.Value
Range("K" & i).Value = txtprixdero3.Value
Range("L" & i).Value = txtvolume3.Value
Range("M" & i).Value = txtprixst4.Value
Range("N" & i).Value = txtprixdero4.Value
Range("O" & i).Value = txtvolume4.Value
Range("P" & i).Value = txtprixst5.Value
Range("Q" & i).Value = txtprixdero5.Value
Range("R" & i).Value = txtvolume5.Value
Range("S" & i).Value = txtprixst6.Value
Range("T" & i).Value = txtprixdero6.Value
Range("U" & i).Value = txtvolume6.Value
Range("V" & i).Value = txtprixst7.Value
Range("W" & i).Value = txtprixdero7.Value
Range("X" & i).Value = txtvolume7.Value
Range("Y" & i).Value = txtprixst8.Value
Range("Z" & i).Value = txtprixdero8.Value
Range("AA" & i).Value = txtvolume8.Value
Unload monetique_cheque
End If
Next i
End With
End Sub
A voir également:
- Je cherche a faire un classeur excel comme VBA
- Liste déroulante excel - Guide
- Comment faire un tri personnalisé sur excel - Guide
- Word et excel gratuit - Guide
- Imprimer un classeur excel sur mac - Guide
- Déplacer colonne excel - Guide
4 réponses
Bonjour,
1/ Private Sub UserForm_Initialize()
il faut preciser la feuille ou vous reeuperez les donnees par:
With Worksheets("la feuille")
et a la fin
end With
mettre un point devant les Cells....
2/Private Sub btnvalider_Click()
Vous avez bien With ThisWorkbook.Sheets("cheque et monetique")
mais pas les points devant les Range....
La recherche peut se faire sans boucle For i = Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
1/ Private Sub UserForm_Initialize()
il faut preciser la feuille ou vous reeuperez les donnees par:
With Worksheets("la feuille")
et a la fin
end With
mettre un point devant les Cells....
2/Private Sub btnvalider_Click()
Vous avez bien With ThisWorkbook.Sheets("cheque et monetique")
mais pas les points devant les Range....
La recherche peut se faire sans boucle For i = Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
Merci f894009n Mais ça ne marche toujours pas.
J'ai mis With Worksheets("cheque et monétique"), mais ça ne marche pas. et j'essaie de mettre un point devant les "cells ça conne erreur. C'est deux tableaux que je suis entrain de faire, qui ont le même structure, je vais vous passer ce le deuxième avec tous les formulaires déjà fais mais que j'arrive pas a lié à leurs feuilles respectives.
Si vous pouvez faire apparaitre dans le formulaire "consultation" que j' ai commencer a code les éléments de la feuilles " consultation de compte", et aussi avec le bouton btnAjouter d'ajouter un element même dans le commentaire avec le btn ajouter d'ajouter un nouvau client sur la feuille exact que je veux et le btnsupprimer de supprimer un client se serai gentil de votre part Merci.
Voici le base dans ce lien
http://fromsmash.com/926194b8-b31f-11e7-830d-0a39043893bc
J'ai mis With Worksheets("cheque et monétique"), mais ça ne marche pas. et j'essaie de mettre un point devant les "cells ça conne erreur. C'est deux tableaux que je suis entrain de faire, qui ont le même structure, je vais vous passer ce le deuxième avec tous les formulaires déjà fais mais que j'arrive pas a lié à leurs feuilles respectives.
Si vous pouvez faire apparaitre dans le formulaire "consultation" que j' ai commencer a code les éléments de la feuilles " consultation de compte", et aussi avec le bouton btnAjouter d'ajouter un element même dans le commentaire avec le btn ajouter d'ajouter un nouvau client sur la feuille exact que je veux et le btnsupprimer de supprimer un client se serai gentil de votre part Merci.
Voici le base dans ce lien
http://fromsmash.com/926194b8-b31f-11e7-830d-0a39043893bc
Re,
Je regarde la chose
A+
Suite:
Quezaco dans uf consultation?????
Je regarde la chose
A+
Suite:
Quezaco dans uf consultation?????
Private Sub btnvalider_Click()
End Sub
Dim i As Integer
Dim valider As String
valider = Txtnosiren.Value
With ThisWorkbook.Sheets("consultation de compte")
For i = Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
If Range("A" & i).Value = valider Then
Range("A" & i).Value = Txtnosiren.Value
Range("B" & i).Value = txtnomclient.Value
Range("C" & i).Value = cboportefeuille.Value
Range("D" & i).Value = Cbonom1.Value
Range("E" & i).Value = txtprixst1.Value
Range("F" & i).Value = txtprixst1.Value
Range("G" & i).Value = txtcom1.Value
Range("H" & i).Value = Cbonom2.Value
Range("I" & i).Value = txtprixst2.Value
Range("J" & i).Value = txtprixst2.Value
Range("K" & i).Value = txtcom2.Value
Range("L" & i).Value = Cbonom3.Value
Range("M" & i).Value = txtprixst3.Value
Range("N" & i).Value = txtprixst3.Value
Range("O" & i).Value = txtcom3.Value
Les boutons Valider, Ajouter et Supprimer ne fonctionne pas. Essaie de texter le code pour voir ça donne le même erreur d'execution 9. Je veux juste avoir un truc qui fonctionne pr l'UF consulation et je ferrai les autres. j'ai encore un autre problème avec un code VBA Acess. Mais le fichier est un peu confidentiel, Je ne peux pas le partager si tu veux passe moi votre mail personnel ou si non ecris moi sur ***@*** comme je te le transmets. Merci
En faite vais vous présente tous le projet comme ça vous pouvez voir si vous pouvez m'aider ou pas. En faite j'aimerais faire une feuille qui centralise tous les informations pour quand la personne qui sur valider pour que consolider quand il rajoute une personne pour qu'il ajouter cette personne la. L'objectif c'est de pouvoir faire dans ce tableau des tableaux croiser dynamique et des tableaux de bord avec des images comme le votre. Mon problème c'est dans le code Valider. je souhaite enregistre aussi le même information automatiquement les mêmes informations dans la grande feuille. Merci
Allez, je parie une discussion de 100 messages....
Voir https://forums.commentcamarche.net/forum/affich-34732023-faire-resortir-des-a-b-c-d-dans-un-formulaire
Bon courage !
Voir https://forums.commentcamarche.net/forum/affich-34732023-faire-resortir-des-a-b-c-d-dans-un-formulaire
Bon courage !
Bonjour,
En effet une anerie que vous avez ecrite dans procedure:
Et un copie/foire d'une variable par moi que vous devriez facilement trouver
Pour supprimer, vous avez mis ce nom de feuille, est-ce le bon ??
'On se positionne la feuille de la source de données
A supposer evidement que ce soit vous qui a ecrit le code......
En effet une anerie que vous avez ecrite dans procedure:
Private Sub btnajouter_Click()
Me.Txtnosiren = ""
Me.txtnomclient = ""
Me.cboportefeuille = ""
Me.Cbonom1 = ""
Me.txtprixst1 = ""
Me.txtprixst1 = ""
Me.txtcom1 = ""
Me.Cbonom2 = ""
Me.txtprixst2 = ""
Me.txtprixdero2 = ""
Me.txtcom2 = ""
Me.Cbonom3 = ""
Me.txtprixst3 = ""
Me.txtprixdero3 = ""
Me.txtcom3 = ""
Et un copie/foire d'une variable par moi que vous devriez facilement trouver
Pour supprimer, vous avez mis ce nom de feuille, est-ce le bon ??
'On se positionne la feuille de la source de données
With ThisWorkbook.Sheets("frais de gestion et cartes")
A supposer evidement que ce soit vous qui a ecrit le code......
je ne suis pas trop douer en VBA, mais le code que vous avez mis au debut , c'est un code qui permets de réinitialiser a vide le le formulaire pas de faire des ajouts je pense.
Je voudrais juste savoir si vous avez essayé le code que vous m'avez envoyer le code juste pour consultation? je veux juste que se soit bon pour consultation. pares je vais essayer de l'appliquer aux autres formulaires
Je voudrais juste savoir si vous avez essayé le code que vous m'avez envoyer le code juste pour consultation? je veux juste que se soit bon pour consultation. pares je vais essayer de l'appliquer aux autres formulaires
Bonjour
Voici le reste du travail Je veux essayer de faire un truc bcp plus complexe c'est la consolidation horizontale de tous les feuilles tout en gardant uniquement les 3 premières colonnes de la 1ère feuille et dans les autres je vais prendre tous les autres feuilles sauf les 3 première lignes.
Parce que 1ère feuille contient les SIREN Nom et portefeuille, ces informations vont être constant et ne vont pas changer d'une feuille à l'autre mais je vais prendre pour tous les autres feuilles les autres colonnes saufs les 3 premiers qui sont constant. Mon objectif derrière ça c'est de faire des tableaux croisés dynamiques avec tous c'est infos.
J'ai trouvé ça sur internet ça permet de vider un feuille et de remplir verticalement mais moi c'est horizontalement et avec les autres subtilités que je dis au début.
'declaration de variables
Dim i As Integer
Dim j As Integer
Dim dernierligne As Integer
Dim LastRowconolidation As Integer
Sub effacedonnees()
Worksheets("consolidation").Select
Rows("3:1000").Select
Selection.Clear
Range("A3").Select
End Sub
Sub consolider()
Application.ScreenUpdating = False
effacedonnees
For j = 1 To 6 'Pourcours des feuilles important
Sheets(j).Select
Derniereligne = Range("A1000").End(xlUp).Row
For i = 6 To dernierligne
Sheets(j).Select
Rows(i).Select
Selection.Copy
Sheets("consolidaztion").Select
LastRowconsolidation = Range("A1000").End(xlUp).Row + 1
ActiveSheet.Paste
Application.CutCopyMode = False
Next i
Next j
Application.ScreenUpdating = True
MsgBox "La consolidation est terminé..... ", vbOKOnly + vbInformation, " Information"
End Sub
Voici le reste du travail Je veux essayer de faire un truc bcp plus complexe c'est la consolidation horizontale de tous les feuilles tout en gardant uniquement les 3 premières colonnes de la 1ère feuille et dans les autres je vais prendre tous les autres feuilles sauf les 3 première lignes.
Parce que 1ère feuille contient les SIREN Nom et portefeuille, ces informations vont être constant et ne vont pas changer d'une feuille à l'autre mais je vais prendre pour tous les autres feuilles les autres colonnes saufs les 3 premiers qui sont constant. Mon objectif derrière ça c'est de faire des tableaux croisés dynamiques avec tous c'est infos.
J'ai trouvé ça sur internet ça permet de vider un feuille et de remplir verticalement mais moi c'est horizontalement et avec les autres subtilités que je dis au début.
'declaration de variables
Dim i As Integer
Dim j As Integer
Dim dernierligne As Integer
Dim LastRowconolidation As Integer
Sub effacedonnees()
Worksheets("consolidation").Select
Rows("3:1000").Select
Selection.Clear
Range("A3").Select
End Sub
Sub consolider()
Application.ScreenUpdating = False
effacedonnees
For j = 1 To 6 'Pourcours des feuilles important
Sheets(j).Select
Derniereligne = Range("A1000").End(xlUp).Row
For i = 6 To dernierligne
Sheets(j).Select
Rows(i).Select
Selection.Copy
Sheets("consolidaztion").Select
LastRowconsolidation = Range("A1000").End(xlUp).Row + 1
ActiveSheet.Paste
Application.CutCopyMode = False
Next i
Next j
Application.ScreenUpdating = True
MsgBox "La consolidation est terminé..... ", vbOKOnly + vbInformation, " Information"
End Sub