Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access

VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.

Réponse
 
Outils de la discussion
Vieux 01/09/2008, 16h33   #1 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 16
Par défaut Ouvrir classeur excel et affecter valeur dans une cellule

Bien le bonjour !

je souhaiterais via un code vba :
- ouvrir un fichier excel existant (ça j'ai réussi à le faire)
- puis affecter à la cellule A2 une valeur numérique
- cette valeur numérique étant stockée dans une requête


Merci de votre aide !
turbo_cro est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/09/2008, 16h35   #2 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 944
Envoyer un message via MSN à jpcheck
Par défaut

salut,
un petit coup d'oeil dans la est toujours le bienvenu
http://access.developpez.com/faq/?page=Excel#PilotExcel
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/09/2008, 16h50   #3 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 16
Par défaut

oui, j'ai longuement exploré les FAQ comme à mon habitude

j'ai testé ce code, histoire de voir si ca marche en dur, mais helas non

xlSheet.Cells(1, 2) = "1000"

peut etre que c'est à cause du nom de l'onglet...
turbo_cro est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/09/2008, 16h55   #4 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 944
Envoyer un message via MSN à jpcheck
Par défaut

peux-tu nous donner le code que tu utilises actuellement, que l'on puisse t'en dire plus stp ?
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/09/2008, 16h58   #5 (permalink)
Membre chevronné
 
Avatar de supersnail
 
Date d'inscription: novembre 2006
Localisation: /home/computer
Messages: 660
Par défaut

bah pour aller dans une cellule:
-Une fois ton document ouvert,tu vas dans la feuille ou doit aller la valeur
-Tu sélectionnes la celulle concernée
-Tu affectes la valeur

en code ça donne ça (de tête):
Code :
 
Dim worksheet As Worksheet
worksheet = tonfichier.Worksheets(index_feuille)
worksheet.Range("A2").Value = la_valeur
 
__________________
Toute question technique envoyée en MP ira directement à la poubelle
Le développement du plugin boule-de cristal 1.0 pour firefox est annulé.Expliquez donc clairement votre problème (en donnant code source et messages d'erreur)

Pour ceux qui auraient des problèmes avec la langue française,aller voir ici (et coller la traduction sur le forum)
Quel gestionaire de fenêtres préférez-vous sous Linux? - NetBeans addict
supersnail est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 09h24   #6 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 16
Par défaut

alors comme ça, ça marche super bien ! pas de souci

Citation:
Envoyé par supersnail Voir le message
Code :
 
Dim worksheet As Worksheet
worksheet = tonfichier.Worksheets(index_feuille)
worksheet.Range("A2").Value = la_valeur
 
mais lorsque je tente de coder avec une variable ça se complique

voici les deux versions que j'ai essayées

Version 1
la valeur que je souhaite afficher dans la cellule A2 de ma feuille excel se situe dans une requête (valeur que je souhaite augmenter de 1).
J'ai donc inséré un contrôle texte sur mon formulaire qui indique cette valeur.
d'où mon code :

Code :
Dim der As Integer
der = Forms![import excel].Dernier_PA
oWSht.Range("A2").Value = der + 1
 
j'obtiens l'erreur suivante : dépassement de capacité

Version 2
je vais chercher la valeur directement dans la requete

Code :
dim sql as integer
sql = “SELECT LAST([N° PA]) AS [Dernier PA] FROM [P&A]” 'l'erreur se produit ici 
(incompatibilité de type)
oWSht.Range("A2").Value = sql + 1
alors j'ai tenté comme ceci

Code :
dim sql as string
sql = “SELECT LAST([N° PA]) AS [Dernier PA] FROM [P&A]”
oWSht.Range("A2").Value = sql + 1'l'erreur se produit ici 
(incompatibilité de type)
turbo_cro est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 09h48   #7 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 944
Envoyer un message via MSN à jpcheck
Par défaut

salut,
tu sembles confondre ici requête SQL et résultat de la requête (recordset par exemple).
Le code suivant :
Code :
dim sql as integer
sql = “SELECT LAST([N° PA]) AS [Dernier PA] FROM [P&A]'l'erreur se produit ici 
(incompatibilité de type)
oWSht.Range("A2").Value = sql + 1
ne peut fonctionner car tu mets une chaine de caractères dans un entier

celui-ci :
Code :
dim sql as string
sql = “SELECT LAST([N° PA]) AS [Dernier PA] FROM [P&A]”
oWSht.Range("A2").Value = sql + 1'l'erreur se produit ici 
(incompatibilité de type)
ne peut marcher car même si cette fois-ci tu mets bien une chaine de caractères dans une chaine de caractère, la concaténation d'une chaine + un entier ne peut fonctionner. ²
ici tu peux passer par un élément tampon, le recordset :
Code :
dim strSQL as string
dim RS as DAO.RecordSet
strSQL = “SELECT LAST([N° PA]) AS [Dernier PA] FROM [P&A]set RS = CurrentDb.OpenRecordSet(strSQL)
oWSht.Range("A2").Value = RS.Fields("Dernier Pa").value + 1
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 10h13   #8 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 16
Par défaut

aaaah super ca marche !

merci infiniment pour la résolution ! et de m'avoir donné un mini cours !
turbo_cro est déconnecté   Envoyer un message privé Réponse avec citation
NEWS ACCESSF.A.Q AccessF.A.Q VBATutorielsSourcesOutilsLivresAccess TVAccess 2007

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide