Code excel mediocre help plz

Résolu/Fermé
redemption87 Messages postés 4 Date d'inscription dimanche 20 mai 2012 Statut Membre Dernière intervention 20 mai 2012 - 20 mai 2012 à 16:55
redemption87 Messages postés 4 Date d'inscription dimanche 20 mai 2012 Statut Membre Dernière intervention 20 mai 2012 - 20 mai 2012 à 20:51
Bonjour,



Voila je ne me connais pas en excel mais j'ai essayé de lire un peu de cours sur net et j'ai fini par écrire ce code qui devrait me permettre de copier le contenu d'un ensemble de cellules d'une feuille excel et le coller tout au long d'une ligne dans une autre feuille.
reste, quand je clique sur le bouton 'done' le logiciel m'affiche une fenêtre d'erreur. est ce que vous pouvez m'aidez ?

Sub done_click()

Dim vardate As Date
Dim nom, prenom, atb1, lettre, antibiogramme, service As String
Dim compteur, duree, matricule As Integer

Sheets("datafilling").Select
matricule = Cells(D9)
nom = Cells(D5)
prenom = Cells(D7)
service = Cells(D11)
lettre = Cells(H4)
antibiogramme = Cells(J4)
atb1 = Cells(B14)
vardate = Cells(D3)
duree = Cells(H14)

Sheets("Home").Select

Call je_cherche_la_premiere_cellule_vide_et_je_colle
End Sub
Sub je_cherche_la_premiere_cellule_vide_et_je_colle()

Dim noligne As Integer

noligne = 14

While Cells(noligne, a) <> ""
noligne = noligne + 1
Wend

Cells(noligne, c) = nom
Cells(noligne, d) = prenom
Cells(nolign, b) = matricule
Cells(noligne, e) = service
Cells(noligne, f) = lettre
Cells(noligne, g) = antibiogramme
Cells(noligne, h) = atb1
Cells(noligne, A) = vardate
Cells(noligne, i) = duree
End Sub
End Sub
A voir également:

2 réponses

artg78 Messages postés 78 Date d'inscription samedi 5 décembre 2009 Statut Membre Dernière intervention 21 mai 2012 14
20 mai 2012 à 18:23
Déjà, pour nommer une cellule, c'est cells(numéro ligne, numéro colonne).
0
redemption87 Messages postés 4 Date d'inscription dimanche 20 mai 2012 Statut Membre Dernière intervention 20 mai 2012
20 mai 2012 à 18:31
ok merci.
0
ccm81 Messages postés 10904 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 décembre 2024 2 428
Modifié par ccm81 le 20/05/2012 à 18:27
bonjour

1. en tête du module tu places l'instruction qui va t'obliger à déclarer les variables
Option Explicit
2. Les adresses de cellules doivent être mises entre guillemets
matricule = Cells(D9) doit s'écrire matricule = Range("D9") ou Cells(9,"D")
3. les variables utilisées dans la 2° procedure sont "celles de la 1°" mais comme elles ne sont déclarées que dans la 1° elles ne sont pas visibles dans la 2°
donc déclarer ces variables dans l'en tête du module, après Option explicit

en gros ton programme devrait ressembler à ça.

Option Explicit     

Dim vardate As Date     
Dim nom, prenom, atb1, lettre, antibiogramme, service As String     
Dim compteur, duree, matricule As Integer     

Sub done_click()     
matricule = Range("D9")     
nom = Range("D5")     
etc ...     
End Sub     

Sub je_cherche_la_premiere_cellule_vide_et_je_colle()     
Dim noligne As Integer     
noligne = 14     
With Sheets("Home")     
  While .Cells(noligne, "A") <> ""     
    noligne = noligne + 1     
  Wend     
  .Cells(noligne, "C") = nom     
  etc ...     
End With     
End Sub

bon courage
0
redemption87 Messages postés 4 Date d'inscription dimanche 20 mai 2012 Statut Membre Dernière intervention 20 mai 2012
20 mai 2012 à 18:31
merci c'est gentil :) je vais réessayer .
0
redemption87 Messages postés 4 Date d'inscription dimanche 20 mai 2012 Statut Membre Dernière intervention 20 mai 2012
20 mai 2012 à 20:51
merci mille merci ca a marché :)

Option Explicit

Dim daate, premierj, arret1, arret2, tajdid As Integer
Dim poso As String
Dim nom, prenom, atb, lettre, antibiogramme, service As String
Dim compteur, duree, matricule, qtetot1, qtetot2 As Integer


Sub done_click()

Sheets("datafilling").Select
matricule = Range("D9")
nom = Range("D5")
prenom = Range("D7")
service = Range("D11")
lettre = Range("H4")
antibiogramme = Range("J4")
atb = Range("B14")
'jai coupe
premierj = Range("F14")
daate = Range("D3")
duree = Range("H14")
arret1 = Range("J14")
qtetot1 = Range("H17")
qtetot2 = Range("L17")
poso = Range("D14")
arret2 = Range("L14")

tajdid = Range("D18")

Sheets("Home").Select

Call je_cherche_la_premiere_cellule_vide_et_je_colle

End Sub

Sub je_cherche_la_premiere_cellule_vide_et_je_colle()
Dim noligne As Integer
noligne = 14
With Sheets("Home")
While .Cells(noligne, "A") <> ""
noligne = noligne + 1
Wend
Cells(noligne, "A") = daate
Cells(noligne, "B") = matricule
Cells(noligne, "C") = nom
Cells(noligne, "D") = prenom
Cells(noligne, "E") = service
Cells(noligne, "f") = lettre
Cells(noligne, "G") = antibiogramme
Cells(noligne, "H") = atb
'jai couper 2

Cells(noligne, "J") = premierj
Cells(noligne, "K") = duree
Cells(noligne, "M") = arret1
Cells(noligne, "L") = qtetot1
Cells(noligne, "P") = qtetot2
Cells(noligne, "I") = poso
Cells(noligne, "O") = arret2
Cells(noligne, "N") = tajdid


Cells(noligne, "A").Select

End With
End Sub
Sub clear2()
'
' clear2 Macro
'

'
Range("D3,D5,D7,D9,D11,B14,D14,F14,H14,H17,H4,J4,L14,L17,N14").Select
Range("N14").Activate
Selection.ClearContents
End Sub
0