begin process at 2010 03 21 15:59:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Problème avec script VBA excel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec script VBA excel

lundi 19 mai 2008 à 21:30:48 | Problème avec script VBA excel

avyrex1926

Membre Club
Bonjour à tous,

Je rencontre un problème avecun script vba excel.

Voici le script:


'nombre de réparation
Ref = Range("K3").Value
Set Plge1 = Sheets("Tableau Cumulatif").Range("J7:J" & Range("J7").End(xlDown).Row)
Set Plge2 = Sheets("Tableau Cumulatif").Range("N7:N" & Range("N7").End(xlDown).Row)
For Each cel In Sheets("COUT PAR PÉRIODE").Range("A5:A" & Range("A5").End(xlDown).Row)
If cel.Value <> "" Then
cel.Offset(0, 10) = Application.WorksheetFunction.CountIf(Plge1, cel & Ref)
cel.Offset(0, 11) = Application.WorksheetFunction.SumIf(Plge1, cel & Ref, Plge2)
End If
Next


'Total argent
    nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
 Set Plage = Sheets("COUT PAR PÉRIODE").Range("L5:L" & nbLignes)
    For Each CELL In Plage
        Range("L1") = Application.WorksheetFunction.Sum(Plage)
        Next
       
       
        '% SELON TYPE
 On Error Resume Next
    nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
   
    Set Plage = Sheets("COUT PAR PÉRIODE").Range("K5:K" & nbLignes)
  
   
    For Each CELL In Plage
        CELL.Offset(0, 2).Value = CELL.Value / Application.WorksheetFunction.Sum(Plage)
    Next CELL
   
  '% SELON Montant
   
       nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
   
    Set Plage = Sheets("COUT PAR PÉRIODE").Range("L5:L" & nbLignes)
    For Each CELL In Plage
        CELL.Offset(0, 2).Value = CELL.Value / Application.WorksheetFunction.Sum(Plage)
    Next CELL 
       
MsgBox "Terminé"
End Sub


Mon problème est que quand il va chercher le nombre de fois ou apparait un nom dans la feuille "COUT PAR PÉRIODE", il me donne un nombre de 34 fois quand pourtant il y en à 680 dans la colone J. J'ai l'impression qu'il vois que les 43 première lignes.

Pouvez-vous m'aider svp?


Merci de votre aide.
mardi 20 mai 2008 à 10:49:30 | Re : Problème avec script VBA excel

MPi

Réponse acceptée !
Salut,

Dans certains cas, tu utilises xlDown
S'il y a une cellule vide dans la colonne ou le Range, xlDown va s'arrêter sur cette ligne. Il est donc toujours préférable d'utiliser xlUp en partant de la fin quand on veut retourner le nombre de lignes totales. C'est possiblement à cause de ça que ton CountIf ne donne pas le bon total.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI

jeudi 22 mai 2008 à 03:01:42 | Re : Problème avec script VBA excel

avyrex1926

Membre Club
Merci Beaucoup, tu as raison. Là, ça fonctionne.

Désolé aussi pour le retard :)


Cette discussion est classée dans : end, range, plage, sheets, cell


Répondre à ce message

Sujets en rapport avec ce message

comment transformer le code d'une procédure sub en function ? (vba pour excell) [ par drine des iles ] Bonjour,L'internaut jpleroisse m'a transmis ce code pour m'aider à additionner toutes les cellules d'une plage de taille variable. Comment faire pour Experts only:modifier une macro difficile en excel( aidez moi svp) [ par aldush ] Bonjour, je dois ajouter des nouveles fonctions à une macro mais j'arrive pas à obtenir le resultat voulu.en fait je dois ajouter 2 feuille de calcul Transfert d'une feuille vers une autre sans doublons [ par avyrex1926 ] Bonjour, J'ai un petit problème avec un script qui me permet de transferer les noms d'une feuille vers une autre feuille mais sans doublons. Le problè Gestion d'une base de données clients/Ajout de contacts [ par bemien33 ] Bonjour,Je suis novice sur VBA et je bloque depuis une semaine sur le même probème. J'ai beaucoup cherché sur différents sites mais aucun moyen de rés Dans un userfom utilisation de combobox pour tri base de données excell 2003 [ par kikivba ] Bonjour,J'essaie de créer une application qui me permettrai de consulter ma bases de donnée et la trier en vba de la même façon que les filtres automa Marquer les doublons [ par fne67 ] Bonjour est bonne année à tous !Je ne suis pas expert dans la programmation VB, je souhaiterais via macro marquer la première ligne en double d'un tab Incrémentation pour progressbar [ par sfab41 ] Bonjour!J'ai fais une macro qui me permet de mettre à jour une liste à partir d'un dossier en 2 temps1) pour chaque cellule de la plage, si le contenu Erreur lors du lancement d'une UserForm importé [ par lilmonie ] Bonjour, j'ai exporté une UserForm1 vers un autre classeur. Cette UserForm1 donne accès à un autre UserForm2. Cependant, lors ke j'effectue mon doubl [Déplacé VB6 --> VBA] Blocage execution code [ par inkballs ] Bonjour, Le code suivant, me permet de tester les feuilles afin de savoir si toutes les cellules sont bien remplies.Mais à partir de la feuille3,impos copier collage spécial [ par bassojea ] Bonjour à tous qui peut m'aider? voici un bout de code sur lequel je butte... la macro fonctionne bien sauf que 'cell.Offset(0, 8)' est le résultat d'


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales