1ere ligne non vide

Bonsoir,

évidemment il n'y a rien si ce n'est l'affectation de la valeur 12 à votre variable debC, maintenant c'est au code VBA (à vous donc) de savoir quoi faire avec cette variable initialisée à 12.

@ bientôt

LouReeD

Bon très bien, comme çà alors dans le fichier...vous avez tous trouvé bravo.

1test.xlsm (23.05 Ko)

Bonjour à tous,

@LouReed j'ai pris ta formule pour 2 cas dans une macro, mais çà marche pas pour le 2eme cas.

Le 1er cas marche trés bien même sans définir maligne. pour le 2eme cas j'ai mis un intitulé différent de maligne, ml2, défini en integer(%). Est-ce bon ?

Comme ce 2eme cas n'apparait pas tout le temps, j'ai ajouté la condition adequat.

mais çà bug quand même avec "objet requis".

            If ws.Range("Q6") > 0 Then
                Set ml2 = ws.Range("J:J").Find("Tirés en C3")
                 debT = ml2.Row
                 MsgBox debT
            End If

Si vous avez une solution, merci.

Bonjour,

Dim ml2 As Range, debT As Integer

et pas l'inverse.

Mais tu aurais pu essayer de toi-même.

Bonjour,

Oui mais pour çà il faut savoir, d'accord ?

Bonsoir

je n'ai pas la critique facile, c'est juste que Elèves n'a pas d'accent... et au niveau critique je crois que je suis bien plus loin que certains ici non ?

Mon code fonctionne si la recherche est bonne, par contre je ne m'explique pas l'arrivée de cet accent car je n'en met pas d'habitude sur les majuscules...

Serait ce la correction orthographique du site ? Elèves... à priori non...

Il n'en reste pas moins que si j'utilise une variable "maligne" elle n'a pas a être modifiée par une autre qui s'appelle debC, car l'une est un objet Range alors que l'autre est un entier et quand vous écrivez debC.Row, forcément... Donc plutôt qu'une critique voyez dans ce que j'ai dit une affirmation : en VBA on ne mélange pas les genres ! un Integer est un Integer et ne sera pas (ou ne doit pas) être un Range !

@ bientôt

LouReeD

lire le dernier §

Pour le faire faut le savoir, mais pour le savoir faut le lire...

@ bientôt

LouReeD

Bonjour,

Ok, la vérité est que je sais ce qu'est une variable mais pas un objet range.

en plus quand on écrit Range("B" & i), on utilise une variable avec un Range

Bref il faut que je trouve qu'est-ce qu'on définit en Range.

bsr

Bonjour

Ok, la vérité est que je sais ce qu'est une variable mais pas un objet range.
en plus quand on écrit Range("B" & i), on utilise une variable avec un Range
Bref il faut que je trouve qu'est-ce qu'on définit en Range.

Deux question là ...

- Range équivaut à une cellule ou plage de cellule sur votre feuille. Exemple : Range("A1") équivaut à la cellule A1, Range("A1:A10") équivaut à la plage de cellule A1 à A10

- Variable : hum... là c'est un peu la connaissance des mathématiques. Comme l'indique son nom Variable est un élément qui peut prendre des valeurs différentes.

Pour finir, si vous définissez une variable i allant de 1 à 10, l'objet Range("A" & i) varie de 1 à 10

Exemple avec cette boucle où la cellule 1 à 10 de la colonne A va prendre la valeur de la variable i :

For i = 1 to 10
Range("A" & i) = i
Next i

Dites moi si cela répond à votre question

Cordialement

Ok merci Dan

Bonsoir,

il y a ceci sinon...

@ bientôt

LouReeD

bonjour,

Envoyer de la doc sur un point qu'on dit qu'on comprend, c'est de la bienveillance ou autre chose ?

salut

Bonjour

bonjour,

Envoyer de la doc sur un point qu'on dit qu'on comprend, c'est de la bienveillance ou autre chose ?

A qui adressez-vous ce message ?

Cordialement

Bonsoir,

ce doit être à moi... fronck ne vous y trompez pas, mais les cours sur les variables sont bien fait et ils parlent des variables objets et autre, et pour moi, à vous lire, je pensais que vous mélangiez un peu tout ceci. Si je me suis trompé alors veuillez m'excuser...

@ bientôt

LouReeD

Bonsoir,

ok LouReed, c'est oublié. J'ai pas trouvé grand chose sur les objets à ce lien, à part une ligne sur une feuille.

A+

Bonsoir,

alors pour faire simple, l'objet que l'on utilise souvent en VBA c'est le Range car il représente soit une cellule, soit une plage de cellule soit une union de cellules soit une union de plage de cellules, soit même un tableau structuré (qui est en fait une plage de cellules...)

Si vous faites une recherche de valeur sur une plage de cellule avec Find, cela vous retourne la cellule répondant à la recherche donc un Range. De ce fait on dimensionne une variable comme étant un objet Range et on lui attribue le résultat de la recherche par l'instruction SET :

Dim MaCellule As Range, LaPlageDeRecherche As Range
Set LaPlageDeRecherche = ActiveSheet.Range("A1:Z26")

Set MaCellule = LaPlageDeRecherche.Find("LouReeD")

pour tester si la recherche a abouti à un résultat il suffit de tester si l'objet Range MaCellule est égal à Nothing ou pas :
If Not MaCellule Is Nothing Then ' MaCellule est non vide, donc la recherche a aboutie

Du coup on peut gérer MaCellule comme l'on fait avec un Range : MaCellule.Address donnera son adresse sur la feuille : $B$17 par exemple
Pour mettre cette cellule en rouge vous feriez Range("B17").Interior.Color = RGB(255,0,0), et bien là il "suffit" de faire : MaCellule.Interior.Color = RGB(255,0,0)

etc... Et vous avez aussi l'objet Sheet ou WorkSheet pour les feuilles, Shapes pour les formes graphique etc...

@ bientôt

LouReeD

Rechercher des sujets similaires à "1ere ligne vide"