Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Erreur 1004 Macro Excel VBA

Julia, le mardi 19 février 2008 à 08:19:01
Bonjour à tous,

Je suis novice en VBA et je dois créer un fichier excel qui qui permet de saisir des données dans un onglet et de les exporter dans un autre.
Voici la macro que j'ai faite

Sub tranpose_dans_tableau()
'Atteindre le formulaire et mémoriser les données'
Sheets("Formulaire").Select
Range("E6:E10").Select
Selection.Copy
'Test pour déterminer la ligne où coller les infos dans le tableau'
Sheets("Base de données").Select
ValeurA2 = Range("A2").Value
If ValeurA2 = "" Then
Range("A2").Select
Else
Range("A2").Select
Selection.End(xlDown).Select
ligne_active_base = ActiveCell.Row
Range("A" & ligne_active_base + 1).Select
End If
'Mémorise le n° de la ligne où coller les données'
ligne_active_base = ActiveCell.Row
'Collage avec transposition'
Range("A" & ligne_active_base).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlank:=False, Transpose:=True
'Rendre le formulaire vierge'
Sheets("Formulaire").Select
Range("E6:E10").Select
Selection.ClearContents
Range("E6").Select
End Sub

Cependant j'ai une erreur 1004 "Erreur définie par l'application ou par l'objet" qui se produit quand je fais une vérification en mode pas à pas au niveau de la boucle if.

Pouvez vous m'aider ?

Merci
Configuration: Windows XP
Internet Explorer 7.0
Répondre à Julia  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le mardi 19 février 2008 à 09:47:24
bonjour

En simplifiant ton code et en supprimant les "select" inutiles cela donne ceci qui devrait fonctionner.
Sub tranpose_dans_tableau()
Dim ligne_active_base As Double
'Test pour déterminer la ligne où coller les infos dans le tableau'
Sheets("Base de données").Activate
'Mémorise le n° de la ligne où coller les données'
If Range("A2").Value = "" Then
    ligne_active_base = Range("A2").Row
Else
    ligne_active_base = Range("A2").End(xlDown).Row + 1
End If
'Atteindre le formulaire et mémoriser les données'
Sheets("Formulaire").Range("E6:E10").Copy
Range("A" & ligne_active_base).PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
'Collage avec transposition'
Application.CutCopyMode = False
'Rendre le formulaire vierge'
Sheets("Formulaire").Activate
Sheets("Formulaire").Range("E6:E10").ClearContents
Sheets("Formulaire").Range("E6").Select
End Sub

Le savoir est la seule matière qui s'accroît quand on la partage. (Socrate)
Répondre à gbinforme

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Julia, le mardi 19 février 2008 à 11:17:52
Merci pour ton aide
Répondre à Julia

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mamou, le mercredi 9 juillet 2008 à 13:51:42
données, ça marchait mais depuis une semaine il m’affiche « run time error ‘1004 : méthode ’range of Object worksheet failed » . L’erreur se produit dans une page qui contient les indicateurs en chiffre pour alimenter les objets (histogramme, thermomètre ..) . je suis vraiment coince et en plus j’ai une réunion de reporting la semaine prochaine. J’ai besoin de votre aide SVP. Je peux transmettre le fichier si vous voulez.
Suite à ce message qu’on je veux déboguer, il l’ouvre cette fenêtre et il marque une ligne en jaune.

****************************
' Met à jour tous les indicateurs programmés
'**********************************
Private Sub CommandButton1_Click()
'appel de la fonction feu rouge
'Feu rouge alerte client
seuilbas = Feuil2.Range("FR1SB").Value 'lit la valeur du seuil bas
seuilhaut = Feuil2.Range("FR1SH").Value 'lit la valeur du seuil haut
valeur = Feuil2.Range("FR1VAL").Value 'lit la valeur (cette ligne est en jaune)
Call Module1.Feurouge(seuilbas, seuilhaut, valeur, 1)
'Feu rouge alerte budget
seuilbas = Feuil2.Range("FR2SB").Value 'lit la valeur du seuil bas
seuilhaut = Feuil2.Range("FR2SH").Value 'lit la valeur du seuil haut
valeur = Feuil2.Range("FR2VAL").Value 'lit la valeur
Call Module1.Feurouge(seuilbas, seuilhaut, valeur, 2)
'Feu rouge alerte processus
seuilbas = Feuil2.Range("FR3SB").Value 'lit la valeur du seuil bas
seuilhaut = Feuil2.Range("FR3SH").Value 'lit la valeur du seuil haut
valeur = Feuil2.Range("FR3VAL").Value 'lit la valeur
Call Module1.Feurouge(seuilbas, seuilhaut, valeur, 3)

' appel de la fonction jauge verticale
' L'ascenseur permet de faire varier la mesure à titre de démonstration
'Jauge urgence
seuilbas = Range("INDIC1SB").Value 'lit la valeur du seuil bas en H12
seuilhaut = Range("INDIC1SH").Value 'lit la valeur du seuil haut en H13
objectif = Range("INDIC1OBJ").Value 'lit la valeur de l'objectif
valeur = Range("INDIC1VAL").Value 'lit la valeur
Call Module2.jaugeV(seuilbas, seuilhaut, valeur, objectif, 1)
'Jauge normal
seuilbas = Range("INDIC2SB").Value 'lit la valeur du seuil bas en H12
seuilhaut = Range("INDIC2SH").Value 'lit la valeur du seuil haut en H13
objectif = Range("INDIC2OBJ").Value 'lit la valeur de l'objectif
valeur = Range("INDIC2VAL").Value 'lit la valeur
Call Module2.jaugeV(seuilbas, seuilhaut, valeur, objectif, 2)



Feuil1.Activate 'Appel de la page de signalisation
End Sub

Merci d’avance, je ne suis pas un grand connaisseur VB
Répondre à mamou

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 mamou, le mercredi 9 juillet 2008 à 13:53:36
désolés voila le message complet

Bonjour pour le boulot j’ai paramétré un tableau de bord alimenté à partir d’une base des données, ça marchait mais depuis une semaine il m’affiche « run time error ‘1004 : méthode ’range of Object worksheet failed » . L’erreur se produit dans une page qui contient les indicateurs en chiffre pour alimenter les objets (histogramme, thermomètre ..) . je suis vraiment coince et en plus j’ai une réunion de reporting la semaine prochaine. J’ai besoin de votre aide SVP. Je peux transmettre le fichier si vous voulez.
Suite à ce message qu’on je veux déboguer, il l’ouvre cette fenêtre et il marque une ligne en jaune.

****************************
' Met à jour tous les indicateurs programmés
'**********************************
Private Sub CommandButton1_Click()
'appel de la fonction feu rouge
'Feu rouge alerte client
seuilbas = Feuil2.Range("FR1SB").Value 'lit la valeur du seuil bas
seuilhaut = Feuil2.Range("FR1SH").Value 'lit la valeur du seuil haut
valeur = Feuil2.Range("FR1VAL").Value 'lit la valeur (cette ligne est en jaune)
Call Module1.Feurouge(seuilbas, seuilhaut, valeur, 1)
'Feu rouge alerte budget
seuilbas = Feuil2.Range("FR2SB").Value 'lit la valeur du seuil bas
seuilhaut = Feuil2.Range("FR2SH").Value 'lit la valeur du seuil haut
valeur = Feuil2.Range("FR2VAL").Value 'lit la valeur
Call Module1.Feurouge(seuilbas, seuilhaut, valeur, 2)
'Feu rouge alerte processus
seuilbas = Feuil2.Range("FR3SB").Value 'lit la valeur du seuil bas
seuilhaut = Feuil2.Range("FR3SH").Value 'lit la valeur du seuil haut
valeur = Feuil2.Range("FR3VAL").Value 'lit la valeur
Call Module1.Feurouge(seuilbas, seuilhaut, valeur, 3)

' appel de la fonction jauge verticale
' L'ascenseur permet de faire varier la mesure à titre de démonstration
'Jauge urgence
seuilbas = Range("INDIC1SB").Value 'lit la valeur du seuil bas en H12
seuilhaut = Range("INDIC1SH").Value 'lit la valeur du seuil haut en H13
objectif = Range("INDIC1OBJ").Value 'lit la valeur de l'objectif
valeur = Range("INDIC1VAL").Value 'lit la valeur
Call Module2.jaugeV(seuilbas, seuilhaut, valeur, objectif, 1)
'Jauge normal
seuilbas = Range("INDIC2SB").Value 'lit la valeur du seuil bas en H12
seuilhaut = Range("INDIC2SH").Value 'lit la valeur du seuil haut en H13
objectif = Range("INDIC2OBJ").Value 'lit la valeur de l'objectif
valeur = Range("INDIC2VAL").Value 'lit la valeur
Call Module2.jaugeV(seuilbas, seuilhaut, valeur, objectif, 2)



Feuil1.Activate 'Appel de la page de signalisation
End Sub
Répondre à mamou
VBA lance un .bat qui lance un .init (Résolu)Bonjour, Je trafficote pour lancer un script shell unix depuis Excel. Pour l'instant, j'ai deux choses : - un .bat qui lance un .init qui lance mon .sh - un macro excel vba qui lance mon .bat Si je lance mon .bat à la main, ça marche MAIS...... www.commentcamarche.net/forum/affich-3907285-vba-lance-un-bat-qui-lance-un-init
[EXCEL/VBA] Maintenance de macros (Résolu)Bonjour à tous, J'ai écrit une macro en VBA qui utilise un Module et une boite de dialogue. Cette macro est utilisée actuellement dans plusieurs fichiers Excel, ce qui m'oblige à tous les mettre à jour lorsque je veux modifier la macro.... www.commentcamarche.net/forum/affich-2990002-excel-vba-maintenance-de-macros
[VBA] Ouvrir un PDF depuis une macro Excel. (Résolu)Bonjour. Je reçois quotidiennement un nombre important de fichiers en format Word et PDF que je dois imprimer dans un ordre précis. Cet ordre est contenu dans un fichier Excel. J'ai réussi, à partir d'une boucle dans une macro Excel à... www.commentcamarche.net/forum/affich-2793717-vba-ouvrir-un-pdf-depuis-une-macro-excel
Macro excel envoi email avec piéce jointe (Résolu)Bonjour , je suis nouveau stagiaire . Ma question est comment faire pour creer une macro excel qui permet d'envoyer automatiquement un mail (via outlook) avec classeur excel joint. La macro doit ouvrir la feuille excel à mettre à jour (adr de la... www.commentcamarche.net/forum/affich-2253001-macro-excel-envoi-email-avec-piece-jointe
Macro Excel recherche multiple (Résolu)Bonjour, J'aimerais écrire une macro excel qui me permettrait de vérifier si le contenu de ma cellule appartient à une liste de valeur prédéfinie ou est présente dans une plage d'autres cellules précise. Et si oui de faire telle ou telle... www.commentcamarche.net/forum/affich-3623448-macro-excel-recherche-multiple
Toutes les réponses pour « Erreur 1004 Macro Excel VBA »