begin process at 2010 02 10 15:07:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

General

 > 

Object requis sur suppression de ligne à partir d'une macro access sur une feuile excel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Object requis sur suppression de ligne à partir d'une macro access sur une feuile excel

lundi 26 novembre 2007 à 16:49:47 | Object requis sur suppression de ligne à partir d'une macro access sur une feuile excel

alstomman

Bonjour, je souhaiterai une aide sur mon codage en VBA sur access.
Mon but est grace à un bouton commande, ouvrir la feuille d'un fichier XLS et supprimer des lignes.
Suivant ma macro ci-dessous access m'affiche Object requis:

"ligne_eff" est la 1er ligne à supprimer!!!

Dim xlApp, xlSheet, xlBook As Object
Dim ligne_eff As Integer

'J'initialise mes variables
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open("D:\temp\TERMES.xls")
    xlBook.Application.Visible = True
 'Accède à la feuille
    Set xlSheet = xlBook.Sheets("Infos_Termes")
 'sélectionner la 1er ligne de l'équipement à éliminer
    xlSheet.Rows(ligne_eff & ":" & ligne_eff).select
    Selection.Range(Selection, Selection.End(xlDown)).Select       "BUG=Object requis"
'supprimer les lignes de l'équipement
    xlSheet.Selection.Delete Shift:=xlUp
    
'Code de fermeture
    xlBook.Save 'Saugarder la feuille excel
    xlApp.Quit  'fermer excel
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
   
    MsgBox "Fin de la procédure. :)"
mardi 27 novembre 2007 à 00:31:07 | Re : Object requis sur suppression de ligne à partir d'une macro access sur une feuile excel

MPi

Déjà ici il y a un problème.
Dim xlApp, xlSheet, xlBook As Object
Seul xlBook est déclaré en Object, les 2 autres sont Variant
Dim xlApp As Object, xlSheet As Object, xlBook As Object

Puis ici,
Tu déclares une variable ligne_eff (à 0 par défaut) mais tu ne lui donnes pas de valeur, donc encore 0 par défaut
xlSheet.Rows(ligne_eff & ":" & ligne_eff).select
Les lignes ou colonnes 0 n'existent pas sous Excel

Puis si tu sélectionnes comme le code l'indique, il n'est pas nécessaire de le resélectionner
    xlSheet.Rows(ligne_eff & ":" & ligne_eff).select
    Selection.Range(Selection, Selection.End(xlDown)).Select      

En espérant que ça aide un peu

MPi²
mardi 27 novembre 2007 à 08:40:28 | Re : Object requis sur suppression de ligne à partir d'une macro access sur une feuile excel

alstomman

Merci pour tes explications MPi.
Je dois avouer que cela m'aidé.
Par contre, après la sélection de ma 1ère ligne à effacer, faisant référence à :
xlSheet.Rows(ligne_eff & ":" & ligne_eff).select,
je voudrais sélectionner les lignes suivantes, par la même fonction qu'un CTRL+ALT+flèche vers le bas quand tu es sur la feuille excel, d'ou l'expression Selection.Range(Selection, Selection.End(xlDown)).Select.
Je penne sur cette sélection de ligne pour pouvoir ensuite effacer la sélection complète.

J'attend vos réponse avec impatience.
   
mardi 27 novembre 2007 à 11:02:23 | Re : Object requis sur suppression de ligne à partir d'une macro access sur une feuile excel

alstomman

Merci pour tes explications MPi.
Je dois avouer que cela m'aidé.
Par contre, après la sélection de ma 1ère ligne à effacer, faisant référence à :
xlSheet.Rows(ligne_eff & ":" & ligne_eff).select,
je voudrais sélectionner les lignes suivantes, par la même fonction qu'un CTRL+ALT+flèche vers le bas quand tu es sur la feuille excel, d'ou l'expression Selection.Range(Selection, Selection.End(xlDown)).Select.
Je penne sur cette sélection de ligne pour pouvoir ensuite effacer la sélection complète.

J'attend vos réponse avec impatience.
mardi 27 novembre 2007 à 23:27:13 | Re : Object requis sur suppression de ligne à partir d'une macro access sur une feuile excel

MPi

Je ne sais pas comment ton fichier est monté...
Mais est-ce que c'est possible pour toi de filtrer une colonne pour avoir seulement les données à effacer ?

Parce que si tu sélectionnes une première ligne puis que tu fais Ctrl-Shift-Flèche bas, toutes les lignes seront sélectionnées puis supprimées. Peut-être que certaines lignes ne le devraient pas ??? C'est pourquoi, sans voir ce que contient le fichier, c'est assez difficile de répondre correctement. Mais peut-être aussi que c'est vraiment ce que tu veux...

Et effectivement, j'avais mal lu la partie du Ctrl-Shift-Flèche bas...
J'ai plutôt l'habitude de déterminer la dernière ligne pour la sélectionner dans le Range comme ceci
DerniereLigneEcrite = Cells(Rows.Count, "A").End(xlUp).Row
Rows(2 & ":" & DerniereLigneEcrite ).select

MPi²
mercredi 28 novembre 2007 à 08:33:27 | Re : Object requis sur suppression de ligne à partir d'une macro access sur une feuile excel

alstomman

Salut MPi,

Malheureusement, j'ai 2 erreurs:
1ère erreur avec: "erreur de compilation: sub ou fonction non définie"
Function effacement()
    Dim DerniereLigne As Integer
       
    'J'initialise mes variables
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open("D:\temp\TERMES.xls")
    xlBook.Application.Visible = True
    'Accède à la feuille
    Set xlSheet = xlBook.Sheets("Infos_Termes")
    DerniereLigne = Cells(Rows.Count, "A").End(xlUp).Row
    Rows(2 & ":" & DerniereLigne).select
   
    'Code de fermeture
    xlBook.Save 'Saugarder la feuille excel
    xlApp.Quit  'fermer excel
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
   
    MsgBox "Fin de la procédure. " & DerniereLigne
End Function

ensuite, j'ai fait des modif:
2è erreur: "objet requis"
DerniereLigne = xlSheet.Cells(Rows.Count, "A").End(xlUp).Row
xlSheet.Rows(2 & ":" & DerniereLigne).select

J'aimerai qu'ensemble nous trouvions la solution de ce END(xlUp).
J'ai essayé aussi END(xldown)....rien.

Sinon, j'ai trouvé une autre solution, plus barbare, j'ai rajouté une colonne dans ma table que j'avais copié, grâce, à cette nouvelle colonne, j'ai intégré le nombre de lignes que j'avais copié, ainsi je récupére sur la feuille excel ce chiffre et je l'utilise pour la supression de mes lignes.

J'attend avec impatience tes commentaires sur QUOI porte mes erreurs .

Bonne journée.
mercredi 28 novembre 2007 à 11:56:58 | Re : Object requis sur suppression de ligne à partir d'une macro access sur une feuile excel

MPi

Commence par déclarer DerniereLigne As LONG pour éviter une erreur de dépassement.

Il faudrait que tu dises sur quelle ligne l'erreur survient avec son numéro + description.

Où et comment sont déclarées tes variables-objets xlApp, xlBook, xlSheet ?

MPi²
mercredi 28 novembre 2007 à 13:31:37 | Re : Object requis sur suppression de ligne à partir d'une macro access sur une feuile excel

pynuch88


Essaye ca, ca doit retourner le numvero de la derniere ligne :)

xlSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

jeudi 29 novembre 2007 à 00:02:26 | Re : Object requis sur suppression de ligne à partir d'une macro access sur une feuile excel

MPi

Salut Pynuch,
ça donne la dernière ligne si aucune ligne (plus loin) n'a été utilisée. Ma méthode donne exactement la dernière ligne de donnée.

MPi²
vendredi 30 novembre 2007 à 15:47:39 | Re : Object requis sur suppression de ligne à partir d'une macro access sur une feuile excel

alstomman

Bonjour MPI et Pynuch88,

J'ai essayé vos deux méthodes et se fut un echec.
Pour MPi, j'ai modifié DerniereLigne en LONG et rien y fait il me donne toujours les mêmes erreurs sur la ligne ou il calcule la dernière ligne
DerniereLigne = xlSheet.Cells(Rows.Count, "A").End(xlUp).Row
mes variables-objets xlApp, xlBook, xlSheet je les ai déclaré au début de ma macro en Public as Object .
Est ce que la version de mon access peut influencer sur ce codage.
Description de mon access :Microsoft access 2000 et j'utilise un excel 2000.

Pour pynuch, c'est pareille pas de bonne nouvelle!!!

J'ai trouvé une autre solution plus barbare, mais bon ça marche.

PAR CONTRE COMME JE SUIS TéTU, JE VOUDRAIS BIEN QUE L'ON TROUVE LA SOLUTION!!!!! Rrrrrrrrrrrr!!!

Merci de m'aider encore!!
J'attend impatiencement vos réponses!!


Cette discussion est classée dans : set, ligne, excel, xlapp, xlbook


Répondre à ce message

Sujets en rapport avec ce message

ouvrir excel avec password [ par Clodius13 ] Bonjour,J'ai besoin d'ouvrir un fichier excel protégé par un password en lecture.j'ai esayé le code suivant mais il ne fonctionne pas. quelqu'un pourr Impression avec Excel [ par JMKPROD ] bonjour à tousJ'utilise Excel pour 2000 pour imprimer un état de données provenant d'une base Access 2000. Les données sont injectées dans Excel ligne Problème lors d'instructions envoyé a excel [ par KatmandouJah ] Bonjour,   J'ai ecris un module chargée d'ouvrir un classeur Excel existant, de creer un autre classeur et de copier une partie du contenu du classeur Récupérer le contenu de plusieurs feuilles EXCEL [ par krafft ] Bonjour tout le monde, Je vous expose mon problème. J'ai un fichier EXCEL avec plusieurs feuilles remplies de données et j'aimerais récupérer quelques lecture dans fichiers excel [ par lucemm2004 ] bonjour,dans une application VB6, je dois lire une liste de plages contenues dans un millier de fichiers xls contenus dans un répertoire.Pour l'instan Utiliser fichier .Dat dans VB6 [ par Phalls ] Bonjour à tous,Je dois réaliser un petit programme Visual basic permettant de comparer deux données. Une se trouvant dans un fichier.Dat et l'autre da Fermer complètement Excel [ par kkhuet ] Bonjour,j'ai fait le tour de tous les posts trouvés sur la question mais personne ne répond ou ne valide une solution voici mon code :    <font color= excel et VB2005 [ par isokar ] Bonjour a tousje m'éssai sur 2005 depuis quelques jours et j'ai un souci.je souhaite ouvrir un fichier excel pour faire des modifs dedans donc j'ai ch données access dans un classeur excel [ par doro81079 ] Bonjour, j'ai un problème avec une boucle dans access pour remplir un classeur excel si quelqu'un pouvait m'éclairer ce serait cool svp Donc voilà données access dans un classeur excel [ par doro81079 ] Bonjour, j'ai un problème avec une boucle dans access pour remplir un classeur excel si quelqu'un pouvait m'éclairer ce serait cool svp Donc voilà


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,373 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales