Erreur 438 "vous ne disposez pas des droits d'administration..."
Résolu
maiito2011
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
A voir également:
- Erreur 438 "vous ne disposez pas des droits d'administration..."
- Votre appareil ne dispose pas des correctifs de qualité et de sécurité importants - Guide
- 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
- Les textes ne doivent pas être en retrait à droite et à gauche - Guide
- Erreur 0x80070643 - Accueil - Windows
2 réponses
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
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
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...
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.
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
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.