Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…