none
C# trouver la 1ere cellule vide sur une ligne Excel RRS feed

  • Question

  • Bonjour, voici un code qui recherche dans une colonne une valeur. Si cette valeur n'est pas nulle alors une autre valeur (nextpnetRng) est ajoutée à la droite de la 1ere valeur dans la 1ere cellule vide.

    Ce code doit aussi permettre l'ajout de plusieurs autres valeurs sur la même ligne à la droite de la valeur précédente,mais il ne fonctionne pas.

     if (produitRecherche!=null)
                    {
                        produitRecherche.Select();
                        Excel.Range debutSaisiPnet = produitRecherche.Offset[0,1];
                        Excel.Range nextPNetRng = debutSaisiPnet.End[Excel.XlDirection.xlToRight];
                        nextPNetRng.Value2 = PnetTxtBox.Text;
                    }


    JF Collombet ® CreateSpecificCulture

    samedi 14 octobre 2017 07:16

Réponses

  • Du coup j'ai la solution, il me suffisait de délimiter la recherche vers la droite.

     if (produitRecherche!=null)
                    {
                        double PnetDouble = Convert.ToDouble(PnetTxtBox.Text);
                        produitRecherche.Select();
                        Excel.Range ProdRange = produitRecherche.Offset[0, 30];
                        ProdRange.End[Excel.XlDirection.xlToLeft].Offset[0,1].Select();
                        ProdRange.End[Excel.XlDirection.xlToLeft].Offset[0, 1].Value2 = PnetDouble;
                    }


    JF Collombet ® CreateSpecificCulture

    samedi 14 octobre 2017 16:13

Toutes les réponses

  • J'ai trouvé un code qui me paraissait bon mais qui ne sélectionne pas les bonnes cellules.

    En effet il trouve la valeur de référence (produitRecherche) sans problème mais au lieu d'ajouter la valeur dans la 1ere cellule adjacente à droite, il vient l'ajouter 30 cellules plus loin !!

    Dans cet exemple, produitRecherche est "Cartilage" et la valeur à ajouter à droite est 200 :

     if (produitRecherche!=null)
                    {
                        produitRecherche.Select();
                        produitRecherche.End[Excel.XlDirection.xlToRight].Offset[0, 1].Select();
                        produitRecherche.End[Excel.XlDirection.xlToRight].Offset[0, 1].Value2 = PnetTxtBox.Text;
                    }


    JF Collombet ® CreateSpecificCulture

    samedi 14 octobre 2017 14:53
  • Du coup j'ai la solution, il me suffisait de délimiter la recherche vers la droite.

     if (produitRecherche!=null)
                    {
                        double PnetDouble = Convert.ToDouble(PnetTxtBox.Text);
                        produitRecherche.Select();
                        Excel.Range ProdRange = produitRecherche.Offset[0, 30];
                        ProdRange.End[Excel.XlDirection.xlToLeft].Offset[0,1].Select();
                        ProdRange.End[Excel.XlDirection.xlToLeft].Offset[0, 1].Value2 = PnetDouble;
                    }


    JF Collombet ® CreateSpecificCulture

    samedi 14 octobre 2017 16:13