Copie d'un nombre sur un code déjà existant
Résolu
Coo76
-
f894009 Messages postés 17416 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17416 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je dispose d'un code VBA qui me transfère un texte d'un onglet à l'autre si la valeur à gauche est non nul.
Maintenant mon problème est que j'aimerais transféré le nombre également sur l'autre onglet, quelqu'un pense pouvoir m'aider ?
le code est le suivant :
je dispose d'un code VBA qui me transfère un texte d'un onglet à l'autre si la valeur à gauche est non nul.
Maintenant mon problème est que j'aimerais transféré le nombre également sur l'autre onglet, quelqu'un pense pouvoir m'aider ?
le code est le suivant :
Option Explicit
Public Const FR = "Résultat"
'Public Const coCodFR = 2
Public Const lidebFR = 3
Public Const FC = "Codes"
Public Const coCodFC = 1
Public Const lidebFC = 2
' copie le tableau où les codes sont en colonne co
Public Sub Kopie(co As Long)
Dim liFR As Long, lifinFR As Long, TC(), s As String, nbCod As Long, q As Long, lifinFC As Long
With Sheets(FR)
lifinFR = .Cells(Rows.Count, co).End(xlUp).Row
If lifinFR < lidebFR Then
MsgBox "pas de codes dans le tableau colonne " & co
Exit Sub
End If
nbCod = 0
For liFR = lidebFR To lifinFR
s = .Cells(liFR, co).Value
q = .Cells(liFR, co + 1)
If q <> 0 Then
nbCod = nbCod + 1
ReDim Preserve TC(1 To nbCod)
s = s
TC(nbCod) = s
End If
Next liFR
End With
With Sheets(FC)
lifinFC = .Cells(Rows.Count, coCodFC).End(xlUp).Row
.Cells(lifinFC + 1, coCodFC).Resize(nbCod, 1) = Application.Transpose(TC)
End With
End Sub
' pour copier les 3 tableaux
' appel à Kopie avec les colonnes 2, 6, 10
Public Sub OK()
Call RAZ
Call Kopie(2)
Call Kopie(6)
Call Kopie(10)
End Sub
' nettoyage de la feuille Codes
Public Sub RAZ()
Dim lifinFC As Long
With Sheets(FC)
lifinFC = .Cells(Rows.Count, coCodFC).End(xlUp).Row
If lifinFC < lidebFC Then lifinFC = lidebFC
.Range(.Cells(lidebFC, coCodFC), .Cells(lifinFC, coCodFC + 1)).ClearContents
End With
End Sub
A voir également:
- Copie d'un nombre sur un code déjà existant
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Copie cachée - Guide
- Scanner un qr code sur pc - Guide
- Code puk bloqué - Guide
3 réponses
Bonjour,
si la valeur à gauche est non nul. Pour moi, dans votre code c'est la colonne de droite, mais c'est vous qui voyez.
Utilisez un deuxieme tableau pour memoriser les valeurs de cette colonne
si la valeur à gauche est non nul. Pour moi, dans votre code c'est la colonne de droite, mais c'est vous qui voyez.
Utilisez un deuxieme tableau pour memoriser les valeurs de cette colonne
Bonjour,
Salutations f894009.
Une autre solution consiste à utiliser un tableau à deux dimensions :
🎼 Cordialement,
Franck 🎶
Salutations f894009.
Une autre solution consiste à utiliser un tableau à deux dimensions :
Public Sub Kopie(co As Long)
Dim liFR As Long, lifinFR As Long, TC(), s As String, nbCod As Long, q As Long, lifinFC As Long
With Sheets(FR)
lifinFR = .Cells(Rows.Count, co).End(xlUp).Row
If lifinFR < lidebFR Then
MsgBox "pas de codes dans le tableau colonne " & co
Exit Sub
End If
nbCod = 0
For liFR = lidebFR To lifinFR
s = .Cells(liFR, co).Value
q = .Cells(liFR, co + 1)
If q <> 0 Then
nbCod = nbCod + 1
ReDim Preserve TC(1 To 2, 1 To nbCod)
's = s 'LIGNE INUTILE
TC(1, nbCod) = s
TC(2, nbCod) = q
End If
Next liFR
End With
With Sheets(FC)
lifinFC = .Cells(Rows.Count, coCodFC).End(xlUp).Row
.Cells(lifinFC + 1, coCodFC).Resize(nbCod, 2) = Application.Transpose(TC)
End With
End Sub
🎼 Cordialement,
Franck 🎶