Pb macro ecrire fermé de Michel Xld

  • Initiateur de la discussion TYPX
  • Date de début
T

TYPX

Guest
Bonjour,
J'ai un petit souci sur la Macro de Michel Xld
Sur un pc avec office 2003 je peux écrire 28 Colonnes et sur mon portable même office et même référence cochées ça bug à 26.Ci après bout de code incriminé.

merci de vos lumières et bonne journée
TYPX :S
 
T

TYPX

Guest
BOUT DE CODE:
Fichier = 'C:\\Documents and Settings\\All Users\\Documents\\test.xls'

Feuille = 'Feuil2$'
Set Cn = New ADODB.Connection
Cn.Open 'Provider = Microsoft.Jet.OLEDB.4.0;' & _
'data source=' & Fichier & ';' & _
'extended properties=''Excel 8.0;'''

Cible = 'SELECT * FROM [' & Feuille & '];'

Set Rs = New Recordset
Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic

Rs.AddNew
For j = 0 To 26
Rs.Fields(j) = Cells(2, j + 1)

Next j

Rs.Update
Rs.Close
Cn.Close
 

MichelXld

XLDnaute Barbatruc
bonjour TYPX , bonjour Copayo

Typx , je te conseille de relire la charte tu forum car il n'est pas tres sympathique d'interpeller quelqu'un dans le titre du message ...

ça bug ,pourrais tu préciser le message d'erreur ?


tu indiques que cela fonctionne sur le PC mais pas sur le portable :
les fichiers sont en reseaux ? en dur sur chaque poste ?


bon apres midi
MichelXld
 
T

TYPX

Guest
Toutes mes excuses pour l'intitulé,il n'était pas du tout dans mon esprit destiné à vous blesser ou critiquer votre travail,bien au contraire mais simplement à cibler la macro en question dans la masse des macros que vous publiez sur Wiki et que j'utilise et adapte avec beaucoup de bonheur.
Encore Toutes mes excuses pour ce manque de savoir vivre bien involontaire.
L'appli en question n'est pas en réseau,je l'ai corrigé chez moi hier soir et votre macro Ecrire Fermé fonctionnait parfaitement avec 28 colonnes.
Mise sur une clef usb et installé ce matin sur mon portable pour continuer des corrections elle n'accepte que 26 colonnes et bug au dessus.j'ai verifié les refs et la version d'excel mais je coince.
Bonne après midi
typx
 

TYPX

XLDnaute Junior
Bonsoir
Ci joint le fichier test de Réception fermé.
j'ai mis la Macro Ecrire fermé dans un module
A la fin de la macro je la met en boucle s'il ya plusieurs lignes à envoyer.
Cette macro fonctionne sur PC XP Pro pacK office basique 2003
Et sur mon portable XP Home et pack office Pro 2003:
Message d'erreur3265
'IMPOSSIBLE DE TROUVER L'OBJET DANS LA COLLECTION CORRESPONDANT AU NOM OU A LA REFERENCE ORDINALE DEMANDE.'
28 Colonnes et 27 Ca coince et 26 Colonnes ça passe?
Reference identique et config Excel idem
Dans ts les cas Merci
Typx [file name=test_20060315181523.zip size=7011]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/test_20060315181523.zip[/file]
 

Pièces jointes

  • test_20060315181523.zip
    6.8 KB · Affichages: 20

TYPX

XLDnaute Junior
Petite Précision pour info
Je viens de tester l 'appli sur 2 PC de mon boulot (laboratoire analyse) et j'ai le même message .
Ce sont des PC en réseau et j'ai déja une autre appli de rdv qui foctionne avec votre macro mais sur L'envoi de 4 textBox et sans problème.
Là visiblement ça ne fonctionne même pas avec 20 Colonnes,
J'ai essayé chez moi (à distance avec Ultra vnc) et ça marche,?
Peut etre un chevauchement de requête ?
typx
 

MichelXld

XLDnaute Barbatruc
rebonjour Typx


Le message d'erreur correspond bien à l'insertion d'une donnée dans un champ qui n'existe pas
En fait tu n'as pas 28 colonnes dans ton classeur fermé , mais 27 ( la derniere colonne est AA )


Si tu ecris

For j = 0 To 26

tu boucles bien sur tes 27 colonnes car l'index de la 1ere colonne = 0

sur cette base , ta procedure fonctionne tres bien chez moi :
(testé avec Excel2002 et ADO 2.5 )

Dim Fichier As String, Feuille As String, Cible As String
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim j As Integer

Fichier = 'C:\\\\\\\\Documents and Settings\\\\\\\\\\michel\\\\\\\\test.xls'

Feuille = 'Feuil2$'
Set Cn = New ADODB.Connection
Cn.Open 'Provider = Microsoft.Jet.OLEDB.4.0;' & _
'data source=' & Fichier & ';' & _
'extended properties=''Excel 8.0;'''

Cible = 'SELECT * FROM [' & Feuille & '];'

Set Rs = New Recordset
Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic

Rs.AddNew
For j = 0 To 26 '27 colonnes
Rs.Fields(j) = Cells(2, j + 1)

Next j

Rs.Update
Rs.Close
Set Rs = Nothing
Cn.Close
Set Cn = Nothing



bonne soirée
MichelXld

Message édité par: michelxld, à: 15/03/2006 18:44
 

TYPX

XLDnaute Junior
Re bonsoir

Effectivement,maintenant ça fonctionne même avec 28 ou 29 Colonnes en renseignant les champs.

Ce qui est curieux c'est que chez moi je lui mets 0 to 30 par ex et même si les champs ne sont pas renseignés il envoie tout de meme.

En tout cas Merci beaucoup,ça décoince mon appli car l'écriture sur fichier fermé c'est pratique et rapide en réseau en attendant d'investir dans Access.

Merci encore et bonne soirée

Typx
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 351
Membres
103 526
dernier inscrit
HEC