Programmation vba excell 2003
edck17
-
Coco Tickles Messages postés 193 Statut Membre -
Coco Tickles Messages postés 193 Statut Membre -
Bonjour,
J'essai de programmer sous excell 2003 la récupération de données dans un fichier dont je paramètre le nom.
J'ai une erreur 1004 qui s'affiche. Apparemment excell ne trouve pas sa cible mais je n'arrive pas à trouver la bonne syntaxe.
Voici les lignes principale de la macro
'
' acquisition_eleve1 Macro Module5
Dim LaFeuille As Worksheet
Dim Laplage As Range, laMatiere As Range, lesEleves As Range
Dim lacible1 As Range, lacible2 As Range, lacible3 As Range, lacible4 As Range, lacible5 As Range
Dim lacible6 As Range, lacible7 As Range, lacible8 As Range, lacible9 As Range, lacible10 As Range
Dim lacible11 As Range, lacible12 As Range, lacible13 As Range, lacible14 As Range, lacible15 As Range
Dim lacible16 As Range, lacible17 As Range, lacible18 As Range, lacible19 As Range, lacible20 As Range
Dim apprec As Range
Dim ciblapprec1 As Range, ciblapprec2 As Range, ciblapprec3 As Range, ciblapprec4 As Range, ciblapprec5 As Range
Dim ciblapprec6 As Range, ciblapprec7 As Range, ciblapprec8 As Range, ciblapprec9 As Range, ciblapprec10 As Range
Dim ciblapprec11 As Range, ciblapprec12 As Range, ciblapprec13 As Range, ciblapprec14 As Range, ciblapprec15 As Range
Dim ciblapprec16 As Range, ciblapprec17 As Range, ciblapprec18 As Range, ciblapprec19 As Range, ciblapprec20 As Range
Dim nomdeFeuille As String, nomEleve As String, nomMatiere As String
' initialisation de la zone matière et la zone appréciation à charger (la même quelque soit la feuille)
Set Laplage = Range("C7:E13")
Set apprec = Range("F5")
' initialisation des zones de réception des validation par matière de l'élève n°x
Set lacible1 = Range("C4:E10")
Set lacible2 = Range("F4:H10")
etc ...
' initialisation des zones cibles pour les appréciations dans chaque matière
Set ciblapprec1 = Range("L32")
Set ciblapprec2 = Range("M32")
etc ...
Set LaFeuille = Sheets("ListeElèves")
' initialisation zone matières à rechercher
Set laMatiere = Sheets("ListeElèves").Range("G2:G17")
ligne = 1
While laMatiere.Cells(ligne, 1) <> "0"
nomMatiere = laMatiere.Cells(ligne, 1).Value & "_" & Sheets("ListeElèves").Range("C38").Value & "_" & Sheets("ListeElèves").Range("F38").Value
Set LaFeuille = Sheets(Range("A32").Value & "_" & Range("A35").Value)
- cette ligne bug ? -
lacible1.Cells(1, 1).FormulaR1C1 = "=" & "[" & nomMatiere & ".xls" & "]" & "competences" & "!" & Laplage.Cells(1, 1).Value
ensuite erreur 1004
Merci d'avance à la personne qui pourra me venir en aide.
J'essai de programmer sous excell 2003 la récupération de données dans un fichier dont je paramètre le nom.
J'ai une erreur 1004 qui s'affiche. Apparemment excell ne trouve pas sa cible mais je n'arrive pas à trouver la bonne syntaxe.
Voici les lignes principale de la macro
'
' acquisition_eleve1 Macro Module5
Dim LaFeuille As Worksheet
Dim Laplage As Range, laMatiere As Range, lesEleves As Range
Dim lacible1 As Range, lacible2 As Range, lacible3 As Range, lacible4 As Range, lacible5 As Range
Dim lacible6 As Range, lacible7 As Range, lacible8 As Range, lacible9 As Range, lacible10 As Range
Dim lacible11 As Range, lacible12 As Range, lacible13 As Range, lacible14 As Range, lacible15 As Range
Dim lacible16 As Range, lacible17 As Range, lacible18 As Range, lacible19 As Range, lacible20 As Range
Dim apprec As Range
Dim ciblapprec1 As Range, ciblapprec2 As Range, ciblapprec3 As Range, ciblapprec4 As Range, ciblapprec5 As Range
Dim ciblapprec6 As Range, ciblapprec7 As Range, ciblapprec8 As Range, ciblapprec9 As Range, ciblapprec10 As Range
Dim ciblapprec11 As Range, ciblapprec12 As Range, ciblapprec13 As Range, ciblapprec14 As Range, ciblapprec15 As Range
Dim ciblapprec16 As Range, ciblapprec17 As Range, ciblapprec18 As Range, ciblapprec19 As Range, ciblapprec20 As Range
Dim nomdeFeuille As String, nomEleve As String, nomMatiere As String
' initialisation de la zone matière et la zone appréciation à charger (la même quelque soit la feuille)
Set Laplage = Range("C7:E13")
Set apprec = Range("F5")
' initialisation des zones de réception des validation par matière de l'élève n°x
Set lacible1 = Range("C4:E10")
Set lacible2 = Range("F4:H10")
etc ...
' initialisation des zones cibles pour les appréciations dans chaque matière
Set ciblapprec1 = Range("L32")
Set ciblapprec2 = Range("M32")
etc ...
Set LaFeuille = Sheets("ListeElèves")
' initialisation zone matières à rechercher
Set laMatiere = Sheets("ListeElèves").Range("G2:G17")
ligne = 1
While laMatiere.Cells(ligne, 1) <> "0"
nomMatiere = laMatiere.Cells(ligne, 1).Value & "_" & Sheets("ListeElèves").Range("C38").Value & "_" & Sheets("ListeElèves").Range("F38").Value
Set LaFeuille = Sheets(Range("A32").Value & "_" & Range("A35").Value)
- cette ligne bug ? -
lacible1.Cells(1, 1).FormulaR1C1 = "=" & "[" & nomMatiere & ".xls" & "]" & "competences" & "!" & Laplage.Cells(1, 1).Value
ensuite erreur 1004
Merci d'avance à la personne qui pourra me venir en aide.
A voir également:
- Programmation vba excell 2003
- Application de programmation - Guide
- Office 2003 - Télécharger - Bureautique
- Excel compter cellule couleur sans vba - Guide
- Liste déroulante excell - Guide
- Vba attendre 1 seconde ✓ - Forum VB / VBA
2 réponses
Bonsoir,
Dans cette macro on est bien d'accord que :
lacible1.Cells(1, 1) désigne la cellule C4 de la feuille courante au début de la macro
Laplage.Cells(1, 1).Value désigne la valeur de la cellule C7 idem de la feuille courante au début
L'erreur 1004 doit se produire peut-être parce que C7 est vide alors qu'il devrait contenir une référence au format R1C1.
Mais c'est certainement parce que il ne va pas chercher la valeur dans la bonne feuille :
En effet l'instruction :
Set Laplage = Range("C7:E13") fige le range à la feuille courante au moment de l'instruction. ALors que, si je comprends bien, il faut aller chercher la valeur dans LaFeuille.
Donc je pense qu'il faut calculer LaFeuille avant et modifier les set comme cela :
Set Laplage = LaFeuille.Range("C7:E13")
Set lacible1 = LaFeuille.Range("C4:E10")
Enfin voila mon idée à tester
A+
Cordialement,
Dans cette macro on est bien d'accord que :
lacible1.Cells(1, 1) désigne la cellule C4 de la feuille courante au début de la macro
Laplage.Cells(1, 1).Value désigne la valeur de la cellule C7 idem de la feuille courante au début
L'erreur 1004 doit se produire peut-être parce que C7 est vide alors qu'il devrait contenir une référence au format R1C1.
Mais c'est certainement parce que il ne va pas chercher la valeur dans la bonne feuille :
En effet l'instruction :
Set Laplage = Range("C7:E13") fige le range à la feuille courante au moment de l'instruction. ALors que, si je comprends bien, il faut aller chercher la valeur dans LaFeuille.
Donc je pense qu'il faut calculer LaFeuille avant et modifier les set comme cela :
Set Laplage = LaFeuille.Range("C7:E13")
Set lacible1 = LaFeuille.Range("C4:E10")
Enfin voila mon idée à tester
A+
Cordialement,