[VBA Excel] cellule vide

Résolu
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. Bonjour,

    Remplace

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

    par

    if empty(PysFeuille.getCellByPosition(debutColonne, PysLigEnCours)) then
    1. procedure de fonction non defini
  2. Bonjour,
    si la cellule est vide, sa valeur est "" et pas 0
    1. ne fonctionne pas.
      Aucun message de retour
  3. 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
    1. Ta solution s'effectue à chaque fois (avec cellule vide, egale à 0, avec chaine de caractere,...)
  4. En faite je ne suis pas sur excel mais open office calc...
    1. Donc ce n'est pas du vba... ?
    2. @Darkitoon m'aurai mal renseigné...
      Quel est le langage alors?
  5. 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 
    1. --
      1000101 et plus si affinité ;)
      1. Ce sera sans moi pour ta signature