récuper n° enregistrement

T

Thibaut

Guest
Bonjour le forum

Dans un classeur fermé, après écriture par Vba comment récupérer la valeur de de la colonne A (N° d'enregistrement de la ligne) et de le rapatrier sur le formulaire ayant servi à la transmission dans la cellule H18

En vous remerciant de vous pencher sur ce cas
 
T

Thibaut

Guest
onsoir MichelXLD,

Voilà je vais essayer d'être clair et je crois que c'est à partir d'une de tes solutions où du moins sur ce forum que l'idée est partie.

à partir d'un formulaire, la première ligne reprends les données des cellules remplies ex en A1 = B7, en A2 = D4 etc...
Donc, en cliquant sur le bouton validation, par macro, je copie la ligne 1 en fait de A1 à A58 et elle va s'inscrire dans un classeur fermé à la suite des enregistrement et toujours à partir de la colonne B (ex B25)
les 24 premières étabt déjà renseignées. Donc en A25 s'incsrit tout bêtement le numéro d'ordre de la demande, en l'occurence 28 (par le biais d'une simple formule : [=Si(B25=0;'';B24+1)] puisque les trois premières lignes servent au tableau qui réceptionne les demandes.
Je que je souhaiterai obtenir, c'est que ce numéro 28 reviennent s'inscrire dans la cellule H18 du formulaire qui prend alors le nom D'AUTORISATION

En espérant m'être bien expliqué, je te remercie de te pencher sur mon cas et te souhaite avec une légère anticipation un excellent WE
 

MichelXld

XLDnaute Barbatruc
bonjour Thibaut

je ne suis pas sur d'avoir bien compris mais tu peux essayer cette macro pour compter le nombre d'enregistrements dans le classeur fermé


Sub nombreEnregistrementsTotal_dansFeuille()
Dim Rs As ADODB.Recordset
Dim maBase As String, Cn As String, Cible As String

maBase = 'C:\\\\\\\\essai.xls'
Cn = 'DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DBQ=' & maBase & _
';extended properties=''Excel 8.0;HDR=No'''
Cible = 'SELECT COUNT(*) FROM [Feuil1$];'

Set Rs = New ADODB.Recordset
Rs.Open Cible, Cn, adOpenForwardOnly, adLockReadOnly, adCmdText

MsgBox Rs(0)
Rs.Close
Set Rs = Nothing
End Sub



bonne journée
MichelXld
 
T

Thibaut

Guest
Je te remercie MichelXLD et te demande seulement une petite précision : est-ce que ton code prend en compte les 3 premières lignes (tableau) où sont-elles exclues. Excuse-moi mais je débute
en te souhaitant une bonne journée
 
T

Thibaut

Guest
Bonsoir le forum, MichelXld,

Je te remercie beaucoup pour ce code que tu donne et qui fonctionne impec.
Ceci entrainant cela

derligne = sheets('archive').Range('A65536').End(xlUp).Row + 1

A partir de là, cette ligne de code permet d'atteindre la dernière ligne vide; peut-on envisager que le contenue de la 'dernière cellule de la colonne A' (origine A'x' d'un classeur fermé) soit renvoyée sur un classeur ouvert en cours d'utilisation dans une cellule bien spécifique de la feuille active.
Si cette action est réalisable, je vous remercie de m'indiquer le code approprié car moi je ne suis qu'un débutant qui cherche.

En vous remerciant tous pour les réponses que vous me donnerez.
En vous souhaitant un bon WE même si ce n'est pas possible, j'aurai au moins le mérite d'avoir essayé.
 
T

Thibaut

Guest
re bonsoir le forum, MichelXLD
Sur la dernière renseignée atteinte, il n'y a pas un moyen de copier le ocntenu de la cellule Axxxxx et la coller dans le document de départ ?

Dans l'attente et en vous remerciant même de me confirmer que ce n'est pas possible.
Meri et bonne soirée et excellent WE
 

MichelXld

XLDnaute Barbatruc
bonjour Thibaut

pour récupérer les données de la derniere ligne , dans le classeur fermé


Sub dernierEnregistrementClasseurFerme()
Dim Rs As ADODB.Recordset
Dim Cn As String, Cible As String, Fichier As String
Dim i As Integer

Fichier = 'C:\\\\\\\\essai.xls'

Cn = 'DRIVER={Microsoft Excel Driver (*.xls)};' & _
'ReadOnly=1;DBQ=' & Fichier & ';' & _
'extended properties=''Excel 8.0;'''

'requete dans la feuille nommée 'Feuil1'
Cible = 'SELECT * FROM [Feuil1$];'

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

If Not Rs.EOF Then
Rs.Move (Rs.RecordCount - 1)
For i = 0 To Rs.Fields.Count - 1
Debug.Print Rs.Fields(i).Value
Next i
End If

Rs.Close
Set Rs = Nothing
End Sub



bon week end
MichelXld

Message édité par: michelxld, à: 22/10/2005 12:54
 
M

Marc du 78

Guest
Bonjour le forum, Michel XLD,

Je viens rapidement te remercier pour aide que j'apprécie au plus haut point, mais ce que je désire réellement, c'est de récupérer la dernière cellule de la colonne A du classeur fermé.
En te remerciant encore car je ne connais pas vba, suis débutant et on m'a donné le poste de Papy alors je ne suis pas vraiment à l'aise malgré touts ce qu'il a engendré sur son portable comme exemples venant de ce forum.
Bon WE à toi et au forum.
Dans l'attente
Marc
 

MichelXld

XLDnaute Barbatruc
rebonjour

tu peux tester cette adaptation pour récupérer la derniere valeur de la colonne A


Sub dernierValeurColonne_A()
Dim Rs As ADODB.Recordset
Dim Cn As String, Cible As String, Fichier As String

Fichier = 'C:\\\\\\\\essai.xls'

Cn = 'DRIVER={Microsoft Excel Driver (*.xls)};' & _
'ReadOnly=1;DBQ=' & Fichier & ';' & _
'extended properties=''Excel 8.0;'''

Cible = 'SELECT * FROM [Feuil1$];'

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

If Not Rs.EOF Then
Rs.Move (Rs.RecordCount - 1)
Debug.Print Rs.Fields(0).Value
End If

Rs.Close
Set Rs = Nothing
End Sub




bonne journée
MichelXld

Message édité par: michelxld, à: 22/10/2005 12:58
 

Discussions similaires

Statistiques des forums

Discussions
312 244
Messages
2 086 554
Membres
103 246
dernier inscrit
blablasss