Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/12/2011, 14h20   #1
Nouveau Membre du Club
 
Inscription : septembre 2010
Messages : 77
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 77
Points : 25
Points : 25
Par défaut Probleme de formulation

Bonjour cher forum développez.
J'aurai s'il vous plait besoin d'un coup de main.
Je ne comprend pas pourquoi cette formule ne marche pas

Code :
1
2
3
4
With Sheets("Synthèse").Range("B17")
     .Range("B17").formula = "=Sheets!EDF.Range("$A$" & Tot.Row)"& "- Sheets!Base.Range("D7")"
     .Font.Bold = True
    End With
Je souhaite effectuer la différence entre la cellule "A" & Tot.Row et la cellule D7. Or ça Bug
Merci pour l'aide
toushusss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 14h39   #2
Membre habitué
 
Homme Michael
Ingénieur qualité méthodes
Inscription : octobre 2010
Messages : 200
Détails du profil
Informations personnelles :
Nom : Homme Michael
Localisation : France, Aisne (Picardie)

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 200
Points : 115
Points : 115
tu peux commencer a essayer ca

Code :
1
2
3
4
With Sheets("Synthèse").Range("B17")
     .formula = "=Sheets!EDF.Range("$A$" & Tot.Row)"& "- Sheets!Base.Range("D7")"
     .Font.Bold = True
    End With
en gros la fonction with permet de ne pas recopier la meme chose. en gros toi tu lui disais

Code :
Sheets("Synthèse").Range("B17").Range("B17").formula
Pour la suite du code

peux tu décrire ce que tu veux dire avec Tot.row? je ne vois pas ce que ca peut etre ^^
redstoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 14h44   #3
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 693
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 693
Points : 1 445
Points : 1 445
Bonojur,


Essaie avec
Code :
1
2
3
4
    With Sheets("Synthèse").Range("B17")
        .Formula = "=EDF!$A$" & Range("Tot").Row & "- Base!D7"
        .Font.Bold = True
    End With
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 15h03   #4
Nouveau Membre du Club
 
Inscription : septembre 2010
Messages : 77
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 77
Points : 25
Points : 25
Merci à tout les deux mais aucune ne fonctionne.
Dans la réponse de redstoff j'ai la même erreur que dans ma formule me disant que les $ autour du A sont des erreurs ?????????????

et danns le cas de gFZT82 ça m'affiche le message suivant aprés exécution : Erreur 1004
La méthode 'Range' de l'objet'_Global' a échoué.

je ne pige rien
toushusss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 15h09   #5
Membre habitué
 
Homme Michael
Ingénieur qualité méthodes
Inscription : octobre 2010
Messages : 200
Détails du profil
Informations personnelles :
Nom : Homme Michael
Localisation : France, Aisne (Picardie)

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 200
Points : 115
Points : 115
explique moi ce que veut dire tot.row et je t'aide apres
redstoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 15h29   #6
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 693
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 693
Points : 1 445
Points : 1 445
Re,

En supposant que Tot est un nom qui fait référence à une cellule de la feuille Synthèse (à adapter).

Code :
1
2
3
4
5
6
Sub Test()
Dim Ws As Worksheet
    Set Ws = Worksheets("Synthèse")
        Ws.Range("B17").Formula = "=EDF!$A$" & Ws.Range("Tot").Row & "- Base!D7"
        Ws.Range("B17").Font.Bold = True
End Sub
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 15h57   #7
Nouveau Membre du Club
 
Inscription : septembre 2010
Messages : 77
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 77
Points : 25
Points : 25
En fait "A" & tot.row est une cellule de la page EDF.
Elles se nomme comme cela car elle est variable. J'ai un tableau ou se rajoutte des lignes au fur et à mesure de mes saisis. Elle fait le total des cellules juste au dessus et donc à chaque insertion elle se décale d'une case vers le bas. Je souhaite la rappeler dans un tableau synthése sur feuille Synthèse et faire l'oppération décrite dans ma formule.
Merci
toushusss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 16h23   #8
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 693
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 693
Points : 1 445
Points : 1 445
Mouais ! tu ne réponds pas à la question qui est de savoir ce qu’est « Tot ».
S’il s’agit d’un nom, tu dois voir à quelle feuille et cellule il fait référence.
En cliquant dans Formules/ Gestionnaire de noms, tu dois voir le nom « Tot » qui fait référence par exemple à EDF!$E$10.

Worksheets("EDF").Range("Tot").Row retourne le numéro de ligne, soit 10.
et "EDF!$A$" & Ws.Range("Tot").Row retourne "EDF!$A$10".

Donc, en supposant que Tot est un nom qui fait référence à une cellule de la feuille EDF, le code devient
Code :
1
2
3
4
5
6
7
8
Sub Test()
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
    Set Ws1 = Worksheets("Synthèse")
    Set Ws2 = Worksheets("EDF")
        Ws1.Range("B17").Formula = "=EDF!$A$" & Ws2.Range("Tot").Row & "- Base!D7"
        Ws1.Range("B17").Font.Bold = True
End Sub
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 16h38   #9
Nouveau Membre du Club
 
Inscription : septembre 2010
Messages : 77
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 77
Points : 25
Points : 25
Je me suis peut etre mal exprimé.
Tot et définicomme suit dans mon code :
Code :
Set Tot = .Range("b11:b" & ligne).Find("TOTAL")
Je cherche la case ou il y a total et j'insere une ligne au dessus.
C'est pour ça que j'ai dit que cette cellule est variable.

Merci
je vais essayé ton code
toushusss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 16h50   #10
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 693
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 693
Points : 1 445
Points : 1 445
D'accord ! donc Tot est une variable range.

Le code devient
Code :
1
2
3
4
5
6
Sub Test()
    With Worksheets("Synthèse").Range("B17")
        .Formula = "=EDF!$A$" & Tot.Row & "- Base!D7"
        .Font.Bold = True
    End With
End Sub
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 08h10   #11
Nouveau Membre du Club
 
Inscription : septembre 2010
Messages : 77
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 77
Points : 25
Points : 25
Salut !
merci gFZT82 . Trop fort
D'ou l'importance de bien formuler ça demande ( je me tape sur les doigts ça m'apprendra)
toushusss est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h30.


 
 
 
 
Partenaires

Hébergement Web