Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1623 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  comment faire une routine pour incrementer l'adresse d'une cellule

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment faire une routine pour incrementer l'adresse d'une cellule

n°2201772
sfx159
Posté le 04-09-2013 à 17:19:40  profilanswer
 

Bonjour à tous,
 
je suis confronté à une petite difficulté.
 
J'ai créé une petite macro pour gérer le nombre d'heure avant le prochain entretient de plusieurs véhicules en fonction du nombre de jours écoulés et de la moyenne de ces heures par jour.
 

Code :
  1. Sub auto_open()
  2.  
  3.     If DateDiff("d", Range("B2" ), Range("A16" )) = 0 Then
  4.        
  5.     Else
  6.         Range("E2" ) = Range("C2" ) + DateDiff("d", Range("B2" ), Range("A16" )) * Range("D2" )
  7.   End If
  8.     If Range("E2" ) - Range("C2" ) >= 350 Then
  9.          Range("F2" ) = Range("C2" ) + 400 - Range("E2" )
  10.          Call AfficheBlocNote(Range("A2" ))
  11.     Else
  12.          Range("F2" ) = Range("C2" ) + 400 - Range("E2" )
  13.   End If
  14. End Sub


 
De ce coté là tout fonctionne très bien, mais j'aimerai créer un système de boucle pour éviter de répéter ce code pour chaque ligne de mon tableau.
j'ai essayé avec la fonction:  
 

Code :
  1. Dim I As Long
  2. for I= 2 to 20
  3. if range("$B$I" )...

 
 
Et plein de petites choses de même genre mais rien ne fonctionne, j'ai eu différent messages d'erreur comme:
"erreur d’exécution "1004": erreur définie par l'application ou par l'objet." et d'autre dont je n'ai plus souvenir.
(c'est dans ce genre de cas que je regrette ce bon vieux "C" ) :pfff:  
 
J'ai déjà fais des recherches mais n'ai rien trouvé de très concluant, donc j’espère que l'un d'entre vous aura une petite combine ou bout de code pour m'aider ça me simplifierai pas mal les choses en cas d'ajout de véhicule (et surtout à mon back to back qui n'y connais rien en prog ^^)
 
Sur ceux je vous souhaite une bonne fin de journée et merci à ceux qui se pencheront sur mon problème.
 
Bye  
 

mood
Publicité
Posté le 04-09-2013 à 17:19:40  profilanswer
 

n°2201814
Marc L
Posté le 04-09-2013 à 21:55:14  profilanswer
 

 
           Bonjour,
 
           voir la propriété  Cells  pour référencer une cellule par un numéro de ligne et de colonne …
 

Message cité 1 fois
Message édité par Marc L le 04-09-2013 à 21:57:22
n°2201879
sfx159
Posté le 05-09-2013 à 12:29:58  profilanswer
 

Marc L a écrit :

 
           Bonjour,
 
           voir la propriété  Cells  pour référencer une cellule par un numéro de ligne et de colonne …
 


 
salut merci pour ta réponse,  ce n'est pas celle que j'avais espéré mais elle m'a permis de trouver ce que je chercher via l'aide VBA.
 
je vous laisse le code au cas ou ça pourrait servir a quelqu'un ;)
 

Code :
  1. Private Sub Workbook_Open()
  2.     For Counter = 2 To 13
  3.    
  4.     If DateDiff("d", Cells(Counter, 2), Range("A16" )) = 0 Then
  5.    
  6.     Else
  7.         Cells(Counter, 5) = Cells(Counter, 3) + DateDiff("d", Cells(Counter, 2), Range("A16" )) * Cells(Counter, 4)
  8.        
  9.   End If
  10.     If Cells(Counter, 5) - Cells(Counter, 3) >= 350 Then
  11.          Cells(Counter, 6) = Cells(Counter, 3) + 400 - Cells(Counter, 5)
  12.          Call AfficheBlocNote(Cells(Counter, 1))
  13.        
  14.     Else
  15.          Cells(Counter, 6) = Cells(Counter, 3) + 400 - Cells(Counter, 5)
  16.        
  17.   End If
  18. Next Counter
  19. End Sub


 
bonne journée à tous et merci encore

n°2201902
Marc L
Posté le 05-09-2013 à 15:26:22  profilanswer
 

 
           Voici le code corrigé des redondances donc plus rapide :
 

Code :
  1. Private Sub Workbook_Open()
  2.     Application.ScreenUpdating = False
  3.     For R& = 2 To 13
  4.         D& = DateDiff("d", Cells(R, 2).Value, [A16].Value)
  5.         If D Then Cells(R, 5).Value = Cells(R, 3).Value + D * Cells(R, 4).Value
  6.         Cells(R, 6).Value = Cells(R, 3).Value + 400 - Cells(R, 5).Value
  7.         If Cells(R, 5).Value - Cells(R, 3).Value >= 350 Then AfficheBlocNote Cells(R, 1)
  8.     Next
  9.     Application.ScreenUpdating = True
  10. End Sub

 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  comment faire une routine pour incrementer l'adresse d'une cellule

 

Sujets relatifs
Recuperer le contenu d'une cellule avec jxl[PHP/JS]Envoyer contenu d'une cellule via XMLHttpRequest
Incrémenter des quantités par ligne jusqu'à une valeur cible globaleAdresse IP de la connexion avec VBA (Excel)
[VBA] mise à jour automatique d'une celluleProblème de comparaison textbox et cellule active
[vba] numéro de la page de la cellule sélectionnéeComment détecter une adresse IP d'un site ou profil
Excel - Liaison en fonction de la valeur d'une celluleVBA : Copier/Coller cellule d'un fichier en lecture seule
Plus de sujets relatifs à : comment faire une routine pour incrementer l'adresse d'une cellule


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR