Je n'arrive pas à avoir le bon code
Résolu/Fermé
Momo
-
Modifié le 4 déc. 2018 à 15:07
Momo2292 Messages postés 4 Date d'inscription mardi 4 décembre 2018 Statut Membre Dernière intervention 6 décembre 2018 - 6 déc. 2018 à 09:32
Momo2292 Messages postés 4 Date d'inscription mardi 4 décembre 2018 Statut Membre Dernière intervention 6 décembre 2018 - 6 déc. 2018 à 09:32
A voir également:
- Je n'arrive pas à avoir le bon code
- Le code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
3 réponses
jordane45
Messages postés
38319
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2024
4 706
4 déc. 2018 à 15:23
4 déc. 2018 à 15:23
Bonjour,
Pourquoi mettre un while et non pas un IF comme pour tes autres tests ?
Ou directement dans le même if
Pourquoi mettre un while et non pas un IF comme pour tes autres tests ?
Sub Statut() Dim i As Integer Dim j As Integer For i = 1 To 'dernière ligne For j = 2 To 'dernière ligne If Cells(i, 1) = Cells(j, 1) Then If Cells(j, 11) <> "" then Cells(i, 10).Copy Cells(j, 10).Paste Cells(i, 10).Value = 0 End If End If Next Next End Sub
Ou directement dans le même if
Sub Statut() Dim i As Integer Dim j As Integer For i = 1 To 'dernière ligne For j = 2 To 'dernière ligne If Cells(i, 1) = Cells(j, 1) And Cells(j, 11)<>"" Then Cells(i, 10).Copy Cells(j, 10).Paste Cells(i, 10).Value = 0 End If Next Next End Sub
Momo2292
Messages postés
4
Date d'inscription
mardi 4 décembre 2018
Statut
Membre
Dernière intervention
6 décembre 2018
4 déc. 2018 à 15:31
4 déc. 2018 à 15:31
Merci pour l’astuce oui tu as complètement raison..
Mais le code ne fonctionne pas, je pense qu'il s'agit d'un problème de fond dans mon code non ? le 'dernière ligne je ne sais pas pointer vers la dernière ligne vu que c'est dynamique, je peux mettre un chiffre énorme ..
Mais j'imagine qu'il y a quelque chose qui ne marche pas dans le code .. en l'exécutant on m'affiche " propriété ou méthode non généré pas cet objet"
Merci
Mais le code ne fonctionne pas, je pense qu'il s'agit d'un problème de fond dans mon code non ? le 'dernière ligne je ne sais pas pointer vers la dernière ligne vu que c'est dynamique, je peux mettre un chiffre énorme ..
Mais j'imagine qu'il y a quelque chose qui ne marche pas dans le code .. en l'exécutant on m'affiche " propriété ou méthode non généré pas cet objet"
Merci
jordane45
Messages postés
38319
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2024
4 706
4 déc. 2018 à 16:06
4 déc. 2018 à 16:06
Je n'avais pas vu que tes boucles n"étaient pas complètes....
Donc :
Donc :
Derniere_Ligne = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
Momo2292
Messages postés
4
Date d'inscription
mardi 4 décembre 2018
Statut
Membre
Dernière intervention
6 décembre 2018
4 déc. 2018 à 16:17
4 déc. 2018 à 16:17
Le code ne fonctionne toujours pas, il m'affiche Erreur 438 , propriété ou méthode non généré pas cet objet
Sub Statut()
Dim i As Integer
Dim j As Integer
Dim derniere_ligne As Integer
derniere_ligne = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
For i = 1 To derniere_ligne
For j = 2 To derniere_ligne
If Cells(i, 1) = Cells(j, 1) And Cells(j, 11) <> "" Then
Cells(i, 10).Copy
Cells(j, 10).Paste
Cells(i, 10).Value = 0
End If
Next
Next
End Sub
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
Modifié le 4 déc. 2018 à 16:22
Modifié le 4 déc. 2018 à 16:22
Bonjour,
C'est le copy/paste qui ne marche pas pour les cellules, il faut utiliser des Range. Mais dans ce cas autant faire plus simple :
C'est le copy/paste qui ne marche pas pour les cellules, il faut utiliser des Range. Mais dans ce cas autant faire plus simple :
Sub Statut() Dim i As Integer Dim j As Integer Dim DerLig As Integer DerLig = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To DerLig For j = i + 1 To DerLig If Cells(i, 1) = Cells(j, 1) And Cells(j, 11) <> "" Then Cells(j, 10) = Cells(i, 10) Cells(i, 10).Value = 0 End If Next Next End Sub
Momo2292
Messages postés
4
Date d'inscription
mardi 4 décembre 2018
Statut
Membre
Dernière intervention
6 décembre 2018
4 déc. 2018 à 18:08
4 déc. 2018 à 18:08
Top le code fonctionne !! sauf qu'en fait il faut lancer la macro une seule fois, sinon elle écrase mes chiffres, y a t il un code/moyen pour limiter l'utilisation de la macro qu'une seule fois par jour et par utilisateur ? sinon au moment du lancement de la macro pour la deuxième fois afficher un message d'alerte en disant que la macro a été utilisé une fois
Merci infiniment
Merci infiniment
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
1 556
>
Momo2292
Messages postés
4
Date d'inscription
mardi 4 décembre 2018
Statut
Membre
Dernière intervention
6 décembre 2018
4 déc. 2018 à 18:15
4 déc. 2018 à 18:15
bonjour, par exemple en mémorisant dans une cellule le moment de la dernière exécution, et ne rien faire si c'est récent.
Momo2292
Messages postés
4
Date d'inscription
mardi 4 décembre 2018
Statut
Membre
Dernière intervention
6 décembre 2018
6 déc. 2018 à 09:32
6 déc. 2018 à 09:32
mercii