Ce forum est maintenant fermé, seule cette archive statique reste consultable.
  FORUM Rue-Montgallet.com
  Programmation
  VB - VBA

  VBA - problème basique mais insoluble par un débutant

Bas de page
Auteur Sujet :

VBA - problème basique mais insoluble par un débutant

n°20255
HereIam
Profil : Jeune recrue
Posté le 11-07-2012 à 17:34:21  
 

Bonjour,
J'ai débuté avec VBA il y a une semaine et je progresse vite, surtout grace à ce site dans lequel je trouve de nombreuses réponses. Cependant, il y a un point que je n'arrive pas à résoudre. Aucune de mes recherches n'a abouti.
 
Apparemment, les chaines de "And" ne sont pas acceptées dans la syntaxe:
If A And B And C then  
    D
    n'est pas reconnu
 
J'ai donc contourné le problème en imbriquant un autre If:
If A And B then
    If C then D
    Else...
Mais ca ne fontionne pas du tout.
 
Mon problème, je veux compter le nombre de lignes d'une liste. Ceci est repéré par 3 cases vides simultanément en colonne 1, 2 et 6. Voici mon code:
 
Sub trouvernblignes()
 
Dim nblignes As Integer
Dim i_nblignes As Integer
 
i_nblignes = 4
 
While i_nblignes < 1000
    If Sheets("tampon" ).Cells(i_nblignes, 1).Value = "" And Sheets("tampon" ).Cells(i_nblignes, 6).Value = "" Then
        If Sheets("tampon" ).Cells(i_nblignes, 2).Value = "" Then
            nblignes = i_nblignes
            i_nblignes = 1000
            Cells(1, 2).Value = nblignes
        Else
            i_nblignes = i_nblignes + 1
        End If
    Else
        i_nblignes = i_nblignes + 1
    End If
 
Wend
     
 
 
End Sub
 
Vous l'avez compris, le résultat nblignes est renvoyé en case 1,2 (normalement).
 
Quelqu'un pourrait m'aider svp?
Je vous remercie d'avance

mood
Pub
Posté le 11-07-2012 à 17:34:21  
 

n°20270
galopin01
Profil : Membre
Posté le 21-01-2013 à 15:57:01  
 

Bonjour,
les apprences sont fausses car ton codes est faux.
Essaie :
 
Sub galopin()
Dim i As Integer
With Sheets("tampon" )
   For i = 4 To 999
      If .Cells(i, 2) = "" And .Cells(i, 4) = "" And .Cells(i, 6) = "" Then
         ActiveSheet.Cells(1, 1) = ActiveSheet.Cells(1, 1) + 1
      End If
   Next
End With
End Sub
 
A+

  FORUM Rue-Montgallet.com
  Programmation
  VB - VBA

  VBA - problème basique mais insoluble par un débutant

© 2000-2024 Forum.rue-montgallet.com - Tous droits réservés