Erreur 438 "vous ne disposez pas des droits d'administration..."
Résolu/Fermé
maiito2011
Messages postés
6
Date d'inscription
mercredi 4 février 2015
Statut
Membre
Dernière intervention
18 février 2015
-
Modifié par maiito2011 le 18/02/2015 à 12:30
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 18 févr. 2015 à 16:40
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 18 févr. 2015 à 16:40
A voir également:
- Erreur 438 "vous ne disposez pas des droits d'administration..."
- Erreur 0x80070643 - Accueil - Windows
- Vous devez disposer des droits d'administrateur pour supprimer ce dossier - Guide
- Accès refusé : obtenir les droits d'accès à un dossier dans Windows - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
18 févr. 2015 à 14:04
18 févr. 2015 à 14:04
Bonjour,
Il te faut déclarer une variable Lign qui s'incrémente à chacune de tes boucles Do Loop.
Comme ceci :
Il te faut déclarer une variable Lign qui s'incrémente à chacune de tes boucles Do Loop.
Comme ceci :
Sub Macro1() Dim produit$, destination, poids!, client$, prix_reel%, prix_preetabli%, retour& Dim Lign As Long 'Saisie des ventes Range("A1").Select Lign = 3 Do Until retour = 7 client = InputBox("Saisir le nom du client.", "Saisie des éléments de la vente.") ActiveCell.Offset(Lign, 0) = client produit = InputBox("Saisir le produit vendu.", "Saisie des éléments de la vente.") ActiveCell.Offset(Lign, 1).Value = produit destination = InputBox("Saisir la destination.", "Sasie des éléments de la vente.") ActiveCell.Offset(Lign, 2).Value = destination poids = InputBox("Saisir le poids.", "Saisie des éléments de la vente.") ActiveCell.Offset(Lign, 3).Value = poids retour = MsgBox("Y a-t-il d'autres ventes à saisir ?", vbYesNo, "Saisie des éléments de la vente.") Lign = Lign + 1 Loop End Sub
maiito2011
Messages postés
6
Date d'inscription
mercredi 4 février 2015
Statut
Membre
Dernière intervention
18 février 2015
18 févr. 2015 à 14:21
18 févr. 2015 à 14:21
Merci beaucoup pour votre aide !!
En revanche j'ai un autre petit soucis en ce qui concerne le prix pré-établi.
Sur un autre classeur excel, j'ai 4 feuilles sur lesquelles figurent mes tarifs. En sachant que mes tarifs varient en fonction du poids et de la destination.
https://www.cjoint.com/?3BsozJkhuYj
Les poids sont établis en par tranche, 1ère colonne = 0 à 10, 2ème colonne = 11 à 20, etc...
Et les prix sont des prix au kilo.
Je voudrai donc afficher le prix pré-établi en fonction des critères saisies précédemment. Par exemple si on a saisi un produit "AFG", un poids de "32" et en destination "26" je veux retrouver en sortie 61*32, soit 1952.
Je ne sais pas si cela est faisable ou pas puisqu'il faut utiliser d'autres fichiers excel.
Merci
En revanche j'ai un autre petit soucis en ce qui concerne le prix pré-établi.
Sur un autre classeur excel, j'ai 4 feuilles sur lesquelles figurent mes tarifs. En sachant que mes tarifs varient en fonction du poids et de la destination.
https://www.cjoint.com/?3BsozJkhuYj
Les poids sont établis en par tranche, 1ère colonne = 0 à 10, 2ème colonne = 11 à 20, etc...
Et les prix sont des prix au kilo.
Je voudrai donc afficher le prix pré-établi en fonction des critères saisies précédemment. Par exemple si on a saisi un produit "AFG", un poids de "32" et en destination "26" je veux retrouver en sortie 61*32, soit 1952.
Je ne sais pas si cela est faisable ou pas puisqu'il faut utiliser d'autres fichiers excel.
Merci
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
18 févr. 2015 à 14:49
18 févr. 2015 à 14:49
1- si ton classeur "tarif" est fermé, il faudra l'ouvrir.
Donc, dans ta macro inititiale, adapte ce code :
Essaie déjà de faire fonctionner ce code.
Il devrait ouvrir ton fichier tarif s'il ne l'était pas...
Donc, dans ta macro inititiale, adapte ce code :
Sub Macro1() Dim produit$, destination, poids!, client$, prix_reel%, prix_preetabli%, retour& Dim Lign As Long 'ouverture du fichier "tarifs" s'il est fermé On error resume next Workbooks(NomDuFichierTarif).activate if err <> 0 then Workbooks.Open Filename:=CheminDuFichier & NomDuFichierTarif on error goto 0 'on revient sur le fichier contenant la macro ThisWorkBook.Activate 'Saisie des ventes Range("A1").Select Lign = 3 Do Until retour = 7 client = InputBox("Saisir le nom du client.", "Saisie des éléments de la vente.") ActiveCell.Offset(Lign, 0) = client produit = InputBox("Saisir le produit vendu.", "Saisie des éléments de la vente.") ActiveCell.Offset(Lign, 1).Value = produit destination = InputBox("Saisir la destination.", "Sasie des éléments de la vente.") ActiveCell.Offset(Lign, 2).Value = destination poids = InputBox("Saisir le poids.", "Saisie des éléments de la vente.") ActiveCell.Offset(Lign, 3).Value = poids retour = MsgBox("Y a-t-il d'autres ventes à saisir ?", vbYesNo, "Saisie des éléments de la vente.") Lign = Lign + 1 Loop End Sub
Essaie déjà de faire fonctionner ce code.
Il devrait ouvrir ton fichier tarif s'il ne l'était pas...
maiito2011
Messages postés
6
Date d'inscription
mercredi 4 février 2015
Statut
Membre
Dernière intervention
18 février 2015
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
18 févr. 2015 à 15:20
18 févr. 2015 à 15:20
Merci pour la réponse rapide pijaku
J'ai testé ton code en y incluant le nom et le chemin du fichier que je souhaite ouvrir, mais cela ne fonctionne pas.
J'ai donc remplacé
par
et là ça fonctionne, j'ai bien mon fichier Tarifs qui s'ouvre et ma macro se poursuit en me demandant de saisir mes informations.
En attendant j'ai cru comprendre que je devrais utiliser VLOOKUP et HLOOKUP en les imbriquant afin de sortir la valeur dont j'ai besoin. En revanche je ne sais pas comment faire pour leur indiquer que la valeur que je cherche (qui se trouve sur la feuille 1 de mon tableau 1) doit être cherchée sur une plage se situant OU sur la feuille 1 de mon tableau Tarifs, OU sur la feuille 2 de mon tableau Tarifs OU ....
En sachant que la condition OU dépend du produit qui aura été saisi.
En bref, si lors de ma saisie j'ai renseigné en produit "AFG", il faudrait que la recherche s'effectue sur le classeur Tarifs, sur la feuille AFG.
Si j'ai renseigné "EXPD" alors la recherche doit toujours se faire sur le classeur Tarifs mais sur la feuille EXPD cette fois.
Et le résultat doit être renvoyé sur le classeur ou j'effectue la macro, le classeur initial.
Je sais pas si tout est clair, si ce n'est pas le cas j'essaierai de clarifier les choses, et si besoin j'insérerai les fichiers.
Merci d'avance.
J'ai testé ton code en y incluant le nom et le chemin du fichier que je souhaite ouvrir, mais cela ne fonctionne pas.
J'ai donc remplacé
if err <> 0 then Workbooks.Open Filename:=CheminDuFichier & NomDuFichierTarif
par
If Err <> 0 Then Workbooks.Open "CheminDuFichier\NomDuFichierTarifs.xls"
et là ça fonctionne, j'ai bien mon fichier Tarifs qui s'ouvre et ma macro se poursuit en me demandant de saisir mes informations.
En attendant j'ai cru comprendre que je devrais utiliser VLOOKUP et HLOOKUP en les imbriquant afin de sortir la valeur dont j'ai besoin. En revanche je ne sais pas comment faire pour leur indiquer que la valeur que je cherche (qui se trouve sur la feuille 1 de mon tableau 1) doit être cherchée sur une plage se situant OU sur la feuille 1 de mon tableau Tarifs, OU sur la feuille 2 de mon tableau Tarifs OU ....
En sachant que la condition OU dépend du produit qui aura été saisi.
En bref, si lors de ma saisie j'ai renseigné en produit "AFG", il faudrait que la recherche s'effectue sur le classeur Tarifs, sur la feuille AFG.
Si j'ai renseigné "EXPD" alors la recherche doit toujours se faire sur le classeur Tarifs mais sur la feuille EXPD cette fois.
Et le résultat doit être renvoyé sur le classeur ou j'effectue la macro, le classeur initial.
Je sais pas si tout est clair, si ce n'est pas le cas j'essaierai de clarifier les choses, et si besoin j'insérerai les fichiers.
Merci d'avance.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
>
maiito2011
Messages postés
6
Date d'inscription
mercredi 4 février 2015
Statut
Membre
Dernière intervention
18 février 2015
18 févr. 2015 à 15:39
18 févr. 2015 à 15:39
Alors, adapte ceci :
Sub Macro1() Dim produit$, destination, poids!, client$, prix_reel%, prix_preetabli%, retour& Dim Lign As Long 'ouverture du fichier "tarifs" s'il est fermé On error resume next Workbooks(NomDuFichierTarif).activate If Err <> 0 Then Workbooks.Open "CheminDuFichier\NomDuFichierTarifs.xls" on error goto 0 'on revient sur le fichier contenant la macro ThisWorkBook.Activate 'Saisie des ventes Range("A1").Select Lign = 3 Do Until retour = 7 client = InputBox("Saisir le nom du client.", "Saisie des éléments de la vente.") ActiveCell.Offset(Lign, 0) = client produit = InputBox("Saisir le produit vendu.", "Saisie des éléments de la vente.") ActiveCell.Offset(Lign, 1).Value = produit destination = InputBox("Saisir la destination.", "Sasie des éléments de la vente.") ActiveCell.Offset(Lign, 2).Value = destination poids = InputBox("Saisir le poids.", "Saisie des éléments de la vente.") ActiveCell.Offset(Lign, 3).Value = poids '***************************************************************** A ADAPTER Dim L As Integer, C, Col As Integer With WorkBooks(NomDuFichierTarifs.xls).Sheets(produit) L = .Columns(1).Cells.Find("FR-" & destination) For Each C In .Columns If .Cells(3, C.Column) < poids And .Cells(3, C.Column + 1) > poids Then Col = C.Column: Exit For End If Next C MsgBox "tarif : " & .Cells(L, Col) & " multiplié par le poids = " & .Cells(L, Col) * poids End With '********************************************************************************* retour = MsgBox("Y a-t-il d'autres ventes à saisir ?", vbYesNo, "Saisie des éléments de la vente.") Lign = Lign + 1 Loop End Sub
maiito2011
Messages postés
6
Date d'inscription
mercredi 4 février 2015
Statut
Membre
Dernière intervention
18 février 2015
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
18 févr. 2015 à 16:36
18 févr. 2015 à 16:36
J'ai adapté ce que tu m'as communiqué, et en testant la macro tout fonctionne correctement jusqu'à la saisie du poids. Une fois celui ci saisi, j'ai une fenêtre "Objet requis" qui s'ouvre et qui stop donc la macro.
Ensuite je souhaiterai affiché le résultat non pas via une MsgBox mais plutôt de la même façon que j'affichais les données saisies manuellement.
J'imagine donc que ça prendre la forme suivante
Ensuite je souhaiterai affiché le résultat non pas via une MsgBox mais plutôt de la même façon que j'affichais les données saisies manuellement.
J'imagine donc que ça prendre la forme suivante
ActiveCell.Offset(Lign, 4).value = poids * le résultat de la recherche précédente.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
>
maiito2011
Messages postés
6
Date d'inscription
mercredi 4 février 2015
Statut
Membre
Dernière intervention
18 février 2015
18 févr. 2015 à 16:40
18 févr. 2015 à 16:40
J'imagine que l'objet requis correspond soit au :
- WorkBooks(NomDuFichierTarifs.xls) => a adapter
ou alors :
- Sheets(produit) => si mal saisi...
Pour l'instant j'ai mis un MsgBox, pour tester. Rien ne t'empêche de mettre, à la place :
- WorkBooks(NomDuFichierTarifs.xls) => a adapter
ou alors :
- Sheets(produit) => si mal saisi...
Pour l'instant j'ai mis un MsgBox, pour tester. Rien ne t'empêche de mettre, à la place :
ActiveCell.Offset(Lign, 4).value = poids * .Cells(L, Col)