[VBA Excel] cellule vide

Résolu
afrodje -  
bobtipitt Messages postés 63 Statut Membre -
Bonjour,

Je dois effectué une condition si la cellule n'est pas vide et ne contienne pas les caractere "quantite".

J'ai deja ceci

 if PysFeuille.getCellByPosition(debutColonne, PysLigEnCours).value = 0 then
      PysFeuille.removeRange(PysCell.RangeAddress, com.sun.star.sheet.CellDeleteMode.UP)
      PysFeuille.removeRange(PysCell_plus_1.RangeAddress, com.sun.star.sheet.CellDeleteMode.UP)
      PysFeuille.removeRange(PysCell_plus_2.RangeAddress, com.sun.star.sheet.CellDeleteMode.UP)
   end if


Ce code s'execute meme si la cellule est vide.

Merci
Configuration: Windows XP
Firefox 2.0.0.11

7 réponses

  1. Alex
     
    Bonjour,

    Remplace

    if PysFeuille.getCellByPosition(debutColonne, PysLigEnCours).value = 0 then

    par

    if empty(PysFeuille.getCellByPosition(debutColonne, PysLigEnCours)) then
    0
    1. afrodje
       
      procedure de fonction non defini
      0
  2. Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   545
     
    Bonjour,
    si la cellule est vide, sa valeur est "" et pas 0
    0
    1. afrodje
       
      ne fonctionne pas.
      Aucun message de retour
      0
  3. laetitia02 Messages postés 428 Statut Membre 130
     
    bonjour essai sa
    if not isnull(PysFeuille.getCellByPosition(debutColonne, PysLigEnCours).value) then
    PysFeuille.removeRange(PysCell.RangeAddress, com.sun.star.sheet.CellDeleteMode.UP)
    PysFeuille.removeRange(PysCell_plus_1.RangeAddress, com.sun.star.sheet.CellDeleteMode.UP)
    PysFeuille.removeRange(PysCell_plus_2.RangeAddress, com.sun.star.sheet.CellDeleteMode.UP)
    end if
    0
    1. afrodje
       
      Ta solution s'effectue à chaque fois (avec cellule vide, egale à 0, avec chaine de caractere,...)
      0
  4. afrodje
     
    En faite je ne suis pas sur excel mais open office calc...
    0
    1. Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   545
       
      Donc ce n'est pas du vba... ?
      0
      1. afrodje > Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention  
         
        on m'aurai mal renseigné...
        Quel est le langage alors?
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. afrodje
     
    C'est Open Office Basic

    Et voila le code

    Sub PysRazLignes
    
    'Ci-dessous attention les numéros de ligne et colonne commencent à zéro
    
    const PysLigDeb = 1         'Adapter en fonction du nombre de lignes
    const PysLigFin = 24     'Adapter en fonction du nombre de lignes
    
    
    dim PysClasseur as object, PysFeuille as object, PysPlage as object
    dim PysLigEnCours as long
    dim debutColonne as Variant
    dim i as integer
    dim nombre_ligne as integer
    
    'nombre de la colonne debute à 0 (donc ex : 5 donne la colonne F)
    debutColonne = Array(1,5,9)
    
    'numero de ligne entre les 2 tableaux
    nombre_ligne = 12
    
    
    
    
    ' Accès au document courant
    PysClasseur = thiscomponent
    
    'Dans ce classeur accès par son nom à une feuille
    PysFeuille = PysClasseur.sheets.getByName("Feuil1")
    
    
    for i = 0 to 2 step 1
    						'Boucle depuis la dernière ligne à traiter jusqu'à la première
    						for PysLigEnCours = PysLigFin to PysLigDeb step - 1
    						
    						   PysCell = PysFeuille.getCellByPosition(debutColonne(i), PysLigEnCours)   'Accès à la cellule
    						   PysCell_plus_1 = PysFeuille.getCellByPosition((debutColonne(i)+1), PysLigEnCours)   'Accès à la cellule+1
    						   PysCell_plus_2 = PysFeuille.getCellByPosition((debutColonne(i)-1), PysLigEnCours)   'Accès à la cellule-1
    						  
    						  
    						 
    						     if IsNumeric(PysCell.STRING) = True THEN
    						         if PysFeuille.getCellByPosition(debutColonne(i), PysLigEnCours).value = 0 THEN
    								      
    										          PysFeuille.removeRange(PysCell.RangeAddress, com.sun.star.sheet.CellDeleteMode.UP)
    										          PysFeuille.removeRange(PysCell_plus_1.RangeAddress, com.sun.star.sheet.CellDeleteMode.UP)
    										          PysFeuille.removeRange(PysCell_plus_2.RangeAddress, com.sun.star.sheet.CellDeleteMode.UP)
    										          
    										           'inserer une ligne vide
    										           PysCell = PysFeuille.getCellByPosition(debutColonne(i), nombre_ligne)  
    										        
    										
    						         end if 
    						    end if 
    						   
    						next PysLigEnCours
    next i
    
    End Sub 
    0
  7. afrodje Messages postés 759 Date d'inscription   Statut Membre Dernière intervention   168
     
    --
    1000101 et plus si affinité ;)
    0
    1. Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   545
       
      Ce sera sans moi pour ta signature
      -1
  8. bobtipitt Messages postés 63 Statut Membre 2
     
    ouai c vrai
    -1