Si deux conditions sont vraies ajout info autre cellule

Bonjour,

j'ai encore un petit soucis une macro qui fonctionne mais est super longue à s'exécuter alors que le nombre de ligne (testé sur 1500 lignes) ne me semble pas énorme et pire je souhaiterai la faire également tourner sur deux autre onglets .

j'ai un tableau nommé 'Delais' (il porte le même nom que l'onglet de la feuille) qui va de la colonne B à H.

En colonne A hors tableau j'ai un petit repère qui me permet de connaître la dernière ligne du tableau renseignée avant mise à jour.

Je souhaiterai ajouter en colonne H le numéro de la semaine saisie via une message box pour la mise à jour venant d'être actualisée.

Ls conditions pour que le numéro de semaine soit renseignées dans les cellules de la colonne H sont :

Colonne A vide (hors tableau)

Colonne B renseignée (1er colonne du tableau)

D'avance merci de votre aide. je vous pousse mon code.

'choix de la semaine
semaine = Application.InputBox("Numéro de la semaine des données extraites (en chiffre)", Type:=1)
Sheets("Délais").Select
For i = 8 To Range("B" & Rows.Count).End(xlUp).Row
   If Not IsEmpty(Range("B" & i)) And IsEmpty(Range("A" & i)) Then Range("H" & i) = semaine

Next
End Sub

Bonjour

Si tu joignais ton fichier, on pourrai essayer quelque chose....

Bye !

Bonjour gmb,

je viens de glisser en pièce jointe le fichier avec la macro.

J'ai laissé le minimum d'onglet sinon la pièce jointe ne passe

Merci de ton aide

10test2.xlsm (138.94 Ko)

Un essai à tester. Te convient-il ?

Bye !

15test2-v1.xlsm (117.36 Ko)

Super et merci gmb,

Cela tourne nickel.

j'ai juste une petite question à quoi sert la ligne :

Range("A9").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo

Grand merci

ssan a écrit :

j'ai juste une petite question à quoi sert la ligne :

Range("A9").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo

Pour que la macro arrive plus vite au résultat, je la fais travailler dans une variable tableau.

Dès que j’ai posé :

tablo = Range("A9:M" & derLn)

toutes les données utiles à la macro sont dans la variable ‘’Tablo’’ et elle n’a plus besoin de venir lire la feuille de calcul Excel, ce qui lui fait gagner beaucoup de temps.

Et c’est cette variable qui va être modifiée.

Au final il faut restituer les nouvelles valeurs de ‘’Tablo’’ à la feuille de calcul.

Pour cela, on doit sélectionner sur la feuille une plage qui a exactement les mêmes dimensions que cette variable : autant de lignes et de colonnes.

C’est ce que l’on fait

* en sélectionnant la 1ère cellule en haut et à gauche de cette plage (ici A9)

* puis en redimensionnant cette selection en lui donnant le nombre de lignes et de colonnes de la variable ‘’Tablo’’

* et enfin en écrivant que cette plage est égale à "Tablo"

OK ?

Bye !

Super,

Merci pour cette macro qui tourne au poil et tes explications qui éclaire ma petite lanterne.

Bonne fin de journée.

Rechercher des sujets similaires à "deux conditions vraies ajout info"