Définir colonne et ligne d'une cellule

Talzatior

XLDnaute Occasionnel
Bonjour amis xldiens ;)

J'ai abandonné mon idée de travailler dans un classeur fermé, j'utilise donc le code suivant pour récupéer mes données et ouvrir mon classeur cible :
Code:
Sub ArchiveFact()
Dim fact_num As Long
Dim fact_date As Date
Dim cmd_num As String
Dim cmd_date As Date
Dim nom_clt As String
Dim ech_date As Date
Dim tot_HT As Double
Dim numligne As Integer

Sheets("Facture").Activate

'collecte les infos de la facture
fact_num = Range("A14")
fact_date = Range("A16")
cmd_num = CStr(Range("C16"))
cmd_date = Range("D16")
nom_clt = CStr(Range("F9"))
ech_date = Range("H16")
tot_HT = Range("F43")

'ouverture du classeur archive_facture2009.xls
Workbooks.Open "C:\Documents and Settings\Talzatior\Mes documents\Excel\Transfert de données par ADO dans un classeur fermé\Archives_test.xls"
Sheets(factures).Activate

'Cherche la premièr ligne vide
Range("A1").Select
While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
Wend

'Récupère numéro de la première ligne vide
numligne = ActiveCell.Row







MsgBox "archivage de la facture n° " & fact_num & " effectué avec succès"

End Sub

Je sélectionne ensuite la première ligne vide et sauvegarde son numéro dans la variable numligne.
J'aurais aimé savoir comment on peut, à l'aide de dette variable, définir les cellules cibles pour insérer les valeurs récupérées dans la première partie de la macro.

Merci par avance ;)
 

liloucmoi

XLDnaute Occasionnel
Re : Définir colonne et ligne d'une cellule

A priori numligne c'est la ligne ou tu veux insérer les éléments : fact_num, fact_date, cmd_num, cmd_date, nom_clt, ech_date, tot_HT.

moi je fais toujours comme ceci :

worksheets("Feuil1").Cells(numligne, numcolonne).value = ##.

tu remplace feuil1 par ta feuille.

## par fact_num (ou un autre) et numcolonne par le numéro de colonne associé à fact_num (ou un autre).

Par contre pour chopper les valeurs j'aurais fais ceci :
Code:
fact_num = Range("A14")[B].value[/B]
fact_date = Range("A16")[B].value[/B]
cmd_num = CStr(Range("C16")[B].value[/B])
cmd_date = Range("D16")[B].value[/B]
nom_clt = CStr(Range("F9")[B].value[/B])
ech_date = Range("H16")[B].value[/B]
tot_HT = Range("F43")[B].value[/B]
 

Talzatior

XLDnaute Occasionnel
Re : Définir colonne et ligne d'une cellule

Bonjour Lilou, re le forum ;)

En effet, ta méthode fonctionne bien, du moins apparemment, mais je recontre une erreur :
"Erreur d'exécution '13':
Incompatibilité de type."
sur la valeur num_fact.

je joins les fichiers test que j'utilise ;)
 

Pièces jointes

  • Facture Source.zip
    23.7 KB · Affichages: 51
  • Facture Source.zip
    23.7 KB · Affichages: 39
  • Facture Source.zip
    23.7 KB · Affichages: 34

liloucmoi

XLDnaute Occasionnel
Re : Définir colonne et ligne d'une cellule

Fact_num est définit comme un long dans ton code.

C'est pas un texte dans ta feuille par hasard ? (genre chiffres et lettres ? )

Sinon c'est pas propre, mais tu peux aussi déclarer fact_num comme un variant à la place de long pour voir si ca passe dans un premier temps.

Sinon, quand tu prends les valeurs, tu as remplacé le code comme moi ? (avec .value après les range ?? )
 

Talzatior

XLDnaute Occasionnel
Re : Définir colonne et ligne d'une cellule

Lilou, je te remercie pour tout ;)

Le fait d'avoir retapé ma macro m'a retiré le bug, j'ai du me tromper quelque part ;)

Merci pour tout ;)

Voilà le résultat :
 

Pièces jointes

  • Facture Source.zip
    24.6 KB · Affichages: 54
  • Facture Source.zip
    24.6 KB · Affichages: 44
  • Facture Source.zip
    24.6 KB · Affichages: 49

Discussions similaires

Statistiques des forums

Discussions
312 435
Messages
2 088 398
Membres
103 839
dernier inscrit
Patounet66