Probleme code VBA
Résolu/Fermé
A voir également:
- Probleme code VBA
- Code asci - Guide
- Code 80072efe ✓ - Forum Windows
- Freewifi secure code ✓ - Forum Réseau
- Find vba - Astuces et Solutions
- Netflix code - Guide
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
2 712
27 janv. 2017 à 11:45
27 janv. 2017 à 11:45
Bonjour,
Regarde ces deux lignes de ton code que j'ai volontairement rapprochées :
Regarde ces deux lignes de ton code que j'ai volontairement rapprochées :
cde = Worksheets("Feuil2").Range("C" & Lig)
If Worksheets("Feuil1").Range("B" & i).Value = char Then
Merci pur ta réponse pijaku,
mais je ne saisi pas, j'ai esayé de remplacer le "i" par "lig" mais ca ne fonctionne toujours pas, il me ressort une erreur du coup...
Un petit peu plus d'indication peut etre?
mais je ne saisi pas, j'ai esayé de remplacer le "i" par "lig" mais ca ne fonctionne toujours pas, il me ressort une erreur du coup...
Un petit peu plus d'indication peut etre?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
2 712
27 janv. 2017 à 12:28
27 janv. 2017 à 12:28
i et Lig étaient bon.
Par contre, que penser de cde et char ?
Par contre, que penser de cde et char ?
Alex2109
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
27 janv. 2017 à 14:31
27 janv. 2017 à 14:31
Je ne les ai pas défini correctement peut être?
Je ne suis pas tres bon en programmation mais j'aimerai vraiment comprendre d'ou vient le probleme?
Je ne suis pas tres bon en programmation mais j'aimerai vraiment comprendre d'ou vient le probleme?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
2 712
>
Alex2109
27 janv. 2017 à 14:45
27 janv. 2017 à 14:45
Si tu veux comparer l'égalité entre : Worksheets("Feuil2").Range("C" & Lig) et Worksheets("Feuil1").Range("B" & i).Value soit tu utilises l'expression entière :
soit tu utilises une variable ET UNE SEULE !
Voici ton code légèrement modifié :
If Worksheets("Feuil1").Range("B" & i).Value = Worksheets("Feuil2").Range("C" & Lig).Value
soit tu utilises une variable ET UNE SEULE !
If Worksheets("Feuil1").Range("B" & i).Value = cde Then
Voici ton code légèrement modifié :
Sub saisie2()
Dim Lig As Long
Dim NbrLig As Long, NumLig As Long
Dim cde As String
Dim i As Integer
NbrLig = Worksheets("Feuil2").Range("C" & 65536).End(xlUp).Row
NumLig = Worksheets("Feuil1").Range("B" & 65536).End(xlUp).Row
With Worksheets("Feuil2")
For Lig = 1 To NbrLig
cde = .Range("C" & Lig)
If cde <> "" Then
For i = 1 To NumLig
If Worksheets("Feuil1").Range("B" & i).Value = cde Then
Worksheets("Feuil1").Range("G" & i).Copy .Range("L" & Lig)
Exit For
End If
Next i
End If
Next Lig
End With
End Sub
Alex2109
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
27 janv. 2017 à 15:19
27 janv. 2017 à 15:19
Ca ne fonctionne pas non plus. Peut etre est ce du au fait que les deux feuilles n'aient pas le meme nombre de ligne et que les client ligne par ligne d'une feuille a l'autre ne soit pas pareil?
C'est bizarre, car en lisant ton code j'ai tres bien compris ce qu'il faisait...
C'est bizarre, car en lisant ton code j'ai tres bien compris ce qu'il faisait...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
2 712
>
Alex2109
27 janv. 2017 à 15:23
27 janv. 2017 à 15:23
Peut etre est ce du au fait que les deux feuilles n'aient pas le meme nombre de ligne et que les client ligne par ligne d'une feuille a l'autre ne soit pas pareil?
Non rien à voir.
Je dirais plutôt un souci avec les données.
Si tu ajoutes un Stop, est ce que ta macro s'arrête :
Si la macro ne s'arrête jamais, cela signifie simplement qu'aucune des données de ta colonne C Feuil2 ne se retrouve en colonne B Feuil1...
Non rien à voir.
Je dirais plutôt un souci avec les données.
Si tu ajoutes un Stop, est ce que ta macro s'arrête :
Sub saisie2()
Dim Lig As Long
Dim NbrLig As Long, NumLig As Long
Dim cde As String
Dim i As Integer
NbrLig = Worksheets("Feuil2").Range("C" & 65536).End(xlUp).Row
NumLig = Worksheets("Feuil1").Range("B" & 65536).End(xlUp).Row
With Worksheets("Feuil2")
For Lig = 1 To NbrLig
cde = .Range("C" & Lig)
If cde <> "" Then
For i = 1 To NumLig
If Worksheets("Feuil1").Range("B" & i).Value = cde Then
Stop
Worksheets("Feuil1").Range("G" & i).Copy .Range("L" & Lig)
Exit For
End If
Next i
End If
Next Lig
End With
End Sub
Si la macro ne s'arrête jamais, cela signifie simplement qu'aucune des données de ta colonne C Feuil2 ne se retrouve en colonne B Feuil1...